tnblog
首页
视频
资源
登录

Elasticsearch 显式Mapping设置与常见参数介绍

6085人阅读 2020/10/15 16:26 总访问:3659330 评论:0 收藏:0 手机
分类: 云产品

elasticsearch

Elasticsearch 显式Mapping设置与常见参数介绍

如何显示的定义一个Mapping

  1. Put movies
  2. {
  3. "mappings" {
  4. //define your mappings here
  5. }
  6. }

自定义Mapping的一些建议

  • 可以参考 API 手册,纯手写
  • 为了减少输入的工作量,减少出错概率,可以依照以下步骤
    • 创建一个临时的 index,写入一些样本数据
    • 通过访问 Mapping API 获得该临时文件的动态Mapping定义
    • 修改后用,使用该配置创建你的索引
    • 删除临时索引

控制当前字段是否被索引

index -控制当前字段是否被索引。默认为true。如果设置成false,该字段不可被搜索。举例,这里不允许mobile字段被索引。

  1. PUT users
  2. {
  3. mappings: {
  4. "properties": {
  5. "firstName": {
  6. "type": "text"
  7. },
  8. "lastName": {
  9. "type": "text"
  10. },
  11. "mobile": {
  12. "type": "text",
  13. "index": false
  14. }
  15. }
  16. }
  17. }

index Options

  1. PUT users
  2. {
  3. mappings: {
  4. "properties": {
  5. "firstName": {
  6. "type": "text"
  7. },
  8. "lastName": {
  9. "type": "text"
  10. },
  11. "mobile": {
  12. "type": "text",
  13. "index": false
  14. },
  15. "bio": {
  16. "type": "text",
  17. "index_options": "offsets"
  18. }
  19. }
  20. }
  21. }

四种不同级别的 Index Options 配置,可以控制倒排索引记录的内容

docs 记录 doc id
freqs 记录 doc id 和 term frequencies
positions 记录 doc id / term frequencies / term position
offsets doc id /term frequencies / term posistion / character offects

Text 类型默认记录 postions,其他默认为 docs
需要注意的是:记录内容越多,占用存储空间越大

关于Null_value

当我们需要对Null值实现搜索时我们可以这样做

  1. PUT users
  2. {
  3. mappings: {
  4. "properties": {
  5. "name": {
  6. "type": "text"
  7. },
  8. "mobile": {
  9. "type": "keyword",
  10. "null_value": "NULL"
  11. }
  12. }
  13. }
  14. }
  15. #查询出数据
  16. GET users/_search?q=mobile:NULL

只有Keyword类型支持设定 Null_Value

Copy_to 设置

  1. PUT users
  2. {
  3. mappings: {
  4. "properties": {
  5. "firstName": {
  6. "type": "text",
  7. "copy_to": "fullName"
  8. },
  9. "lastName": {
  10. "type": "text",
  11. "copy_to": "fullName"
  12. }
  13. }
  14. }
  15. }
  16. #查询
  17. Get users/_search?q=fullName:(Bob He)
  • _all 在 7 中被 copy_to 所替代
  • 满足一些特定的搜索需要
  • copy_to 将字段的数值拷贝到目标字段,实现类似_all的作用
  • copy_to 的目标字段(fullName)不出现在_source中

数组类型

Elasticsearch中不提供专门的数组类型。但是任何字段,都可以包含多个相同类型的数值

  1. Put users/_doc/1
  2. {
  3. "name":"onebird",
  4. "iinterests":"reading"
  5. }
  6. Put users/_doc/2
  7. {
  8. "name": "twobirds",
  9. "interests":["reading","music"]
  10. }

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

Elasticsearch 安装与部署

Elasticsearch 安装与部署[TOC] 环境准备 Java 8.0以上的环境本机环境为Mac,Java 14.0.2 获取 Elasticsearch 安装包 ...

Docker运行 Elasticsearch Kibana和Cerebro

Docker运行 Elasticsearch Kibana和Cerebro[TOC] Demo 运行 Docker-compose,本地构建更高效的开发环境,更直观地了解 El...

Elasticsearch 基本概念:索引、文档和REST API

Elasticsearch 基本概念:索引、文档和REST API[TOC] 前言 为了了解 Elasticsearch 如何构成,我们首先需要理解索引(I...

Elasticsearch 基本概念:节点、集群、分片及副本

Elasticsearch 基本概念:节点、集群、分片及副本[TOC] 分布式系统的可用性与扩展性 高可用性 服务可用性 - 允许有节...

Elasticsearch 文档的基本CRUD与批量操作

Elasticsearch 文档的基本CRUD与批量操作[TOC] 文档的 CRUD Index PUT my_index/_doc/1 {“user”:...

Elasticsearch 倒排索引(运用Analyzer进行分词)

Elasticsearch 倒排索引[TOC] 正排与倒排索引 我们以一本书为例子,一本书的目录为正排索引,它将排列整本书的主要大纲...

Elasticsearch Search API概览

Elasticsearch Search API概览[TOC] Search API 通过搜索获取的数据方式有两种。 URL Search 在URL中使用查询参数...

Elasticsearch URL Search详解

Elasticsearch URL Search详解[TOC] 通过 URL Query 实现搜索举例: Get /movies/_search?q=2020&df=title&sort...

Elasticsearch Request Body与Query DSL简介

Elasticsearch Request Body与Query DSL简介[TOC] Request Body Search 将查询语句通过 HTTP Resquest Body 发送给 Ela...

Elasticsearch 多字段特性及Mapping中配置自定义Analyzer

Elasticsearch 多字段特性及Mapping中配置自定义Analyzer[TOC] 多字段类型多字段特性 厂家名字可以实现精确匹配,增加一...

Elasticsearch Index Template 和 Dynamic Template

Elasticsearch Index Template和Dynamic Template[TOC] 什么是 Index Template 可以通过一定的规则去设定 Mappings 和 Se...

Elasticsearch 聚合分析简介

Elasticsearch 聚合分析简介[TOC] 什么是聚合(Aggregation) 聚合:对有关的数据进行内容挑选、分析、归类(筛选),最...

Elasticsearch 基于词项和基于全文的搜索

Elasticsearch 基于词项和基于全文的搜索[TOC] 基于 Term 的查询Term 的重要性Term 是表达语意的最小单位。搜索和利用语言...

.NET Core使用Elasticsearch 一:windows安装Elasticsearch与kibana

一:安装java环境ElasticSearch是基于Java的所以先要安装Java,dkj,当然下载的ElasticSearch也带得也jkd也可以使用那个。下...

.NET Core使用Elasticsearch 二:CORE操作ES基础环境与简单查询

Elasticsearch使用版本7.12.0安装Elasticsearch与kibana可以参考:https://www.tnblog.net/aojiancc2/article/details/5875...
这一世以无限游戏为使命!
排名
2
文章
657
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术