es查询时候,我们经常会遇到这种场景:对text类型的文档进行查询或者聚合,却发现聚合的字段被es分词了。

这个时候,我们就需要对该字段设置一个keyword属性,并将该keyword属性的type设置为keyword。这样,我们在查询或者在聚合时候,通过该属性下的keyword字段,可以实现完全匹配。

示例:
对一个nested对象下的name字段设置keyword属性。

(1)创建映射。

PUT /my_store/_mapping/products?pretty
{"properties": {"price": {"type": "long"},"name": {"type": "text"},"owner": {"type": "nested","properties": {"name": {"type": "text"},"age": {"type": "long"}}}}
}

(2)插入数据。

POST /my_store/products/_bulk
{ "index": { "_id": 1 }}
{ "price" : 10, "name" : "XHDK-A-1293-#fJ3","owner":{"name" :"西安","age":30}}
{ "index": { "_id": 2 }}
{ "price" : 20, "name" : "KDKE-B-9947-#kL5" ,"owner":{"name" :"西安","age":50}}
{ "index": { "_id": 3 }}
{ "price" : 30, "name" : "JODL-X-1937-#pV7","owner":{"name" :"榆林","age":20} }
{ "index": { "_id": 4 }}
{ "price" : 40, "name" : "QQPX-R-3956-#aD8","owner":{"name" :"榆林","age":10} }

(3)给nested对象下的name字段设置keyword属性。

PUT /my_s*/_mapping/products
{"properties": {"owner": {"type": "nested","properties": {"name": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}}
}

建议:在创建映射的时候,直接对不需要分词的字段设置keyword属性。如下所示:

PUT /my_store/_mapping/products?pretty
{"properties": {"price": {"type": "long"  },"name": {   "type": "text"  },"owner": {"type": "nested","properties": {"name": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}}
}

ElasticSearch设置字段的keyword属性相关推荐

  1. pb 修改数据窗口种指定字段位置_PB数据窗口对象之字段的修改属性

    数据窗口只能修改一个数据表.当数据窗口的数据来源于不止一个数据表时,可以用脚本控制数据窗口的修改属性来对数据表逐个进行修改. 当数据窗口是用来接受用户的手工录入数据时,应该设置两方面的属性才能确保数据 ...

  2. elasticsearch映射相关字段定义,属性定义,及动态映射(marvel插件方式)mapping

    1.什么是Mapping映射? 映射:创建索引的时候,可以预先定义字段的类型及相关属性 作用:这样会让索引建立的更加的细致和完善 分类:静态映射和动态映射 Type ES type Descripti ...

  3. JPA学习笔记---JPA实体Bean的建立---链接上一个博文:对实体Bean中属性进行操作:保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数据,可以存放

    3.给上述生成的那个name字段:更改数据库中的字段名,是否为空,字段长度的设定,只需要   在Person.java文件中,加上 @Column(length=10,nullable=false,n ...

  4. 《地理信息系统基础实例操作100例》-实验15 设置字段属性域(无法创建要素问题)

    <地理信息系统基础实例操作100例>-实验15 设置字段属性域(无法创建要素问题) 零.观前须知 一.基本流程 二.所遇问题 三.解决方法(之一) (一)ArcCatalog操作 (二)A ...

  5. sql增加字段,修改字段属性,设置字段不为空,设置默认值

    新增字段 ALTER TABLE 表名 ADD 字段名 BIT NOT NULL DEFAULT 0; EXEC sys.sp_addextendedproperty @name=N'MS_Descr ...

  6. ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性

    向表或要素类表.要素图层和/或带属性表的栅格添加字段并设置字段属性,是我们在数据建库或处理时常常要用到的操作,实现的方法非常多. 一.逐一添加字段的常见操作 1.打开属性表--添加字段. 2.使用字段 ...

  7. Elasticsearch 设置默认值的三种方式

    1.实战问题 在使用 Elasticsearch 过程中,不免还会有 Mysql 等关系型数据库的使用痕迹,以下两个都是实战开发问到的问题: Elasticsearch 新增字段,能在 Mapping ...

  8. elasticSearch Alternatively use a keyword field instead.

    elasticSearch Alternatively use a keyword field instead 情景再现 原因分析 情景再现 索引user中有三个字段,根据age进行排序查询出现的问题 ...

  9. Elasticsearch:Text vs. Keyword - 它们之间的差异以及它们的行为方式

    很多刚开始学习 Elasticsearch 的人经常会混淆 text 和 keyword 字段数据类型. 它们之间的区别很简单,但非常关键. 在本文中,我将讨论两者之间的区别.如何使用它们.它们的行为 ...

  10. 【Android NDK 开发】JNI 方法解析 ( C/C++ 设置 Java 对象字段 | 查找字段 | 设置字段 )

    文章目录 I . 设置 Java 对象 属性 流程 II . 查找 Java 对象属性 ( GetFieldID ) III . 设置 Java 对象属性 ( SetXxxField ) I . 设置 ...

最新文章

  1. 在虚拟机中 windows 2003 装.net framework 3.5 出现问题.
  2. iview 表单 验证_iview必备技能一、表单验证规则
  3. mysql分页查询语法
  4. Linux循环链表删除节点,删除循环单链表开头元素
  5. 【项目实战】P2P金融数据指标分析
  6. NumPy (6)-结构化数据类型数组
  7. Ubuntu 16.04 Hadoop-2.7.3全分布模式 + eclipse hadoop
  8. 复练-软考网规-机房建设规范专题
  9. Typora + PicGo + Aliyun OSS + CSDN
  10. Eclipse或MyEclipse—在Eclipse或MyEclipse中如何将jar包和相应的源代码关联起来
  11. java全栈_java全栈的知识技能
  12. GkCTF2020逆向部分wp
  13. windows截图保存自动化脚本以及设置快捷键一键运行
  14. 数据库概述09(数据库中的锁机制)
  15. 技术团队人员管理:组建团队的方式
  16. Vivado:【1】Vivado 2018.3 配置ModelSim仿真
  17. iic获取salve设备地址_Linux下使用IIC总线读写EEPROM(读写i2c从设备通用程序)
  18. java老鼠走迷宫算法_老鼠走迷宫java算法
  19. 软件版本号详解,Alpha、Beta、RC、Stable、Release、GA、RTM、RTL、OEM、
  20. idea模块加载失败

热门文章

  1. Linux文件与管理(还是多记)
  2. NLP 的巨人肩膀(下):从 CoVe 到 BERT
  3. 清橙OJ A1212. 剪枝
  4. 一个优秀的logo应该具备哪些特点?
  5. 学习微信开发公众号的第一天(根据文字自动回复文字)
  6. ps的基础知识与教程
  7. Python的IDLE无法打开
  8. ele-ui表单验证规则中的手机号码和邮箱的验证规则
  9. Python自省机制
  10. 徐思 201771010132