ElasticSearch设置字段的keyword属性
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属性相关推荐
- pb 修改数据窗口种指定字段位置_PB数据窗口对象之字段的修改属性
数据窗口只能修改一个数据表.当数据窗口的数据来源于不止一个数据表时,可以用脚本控制数据窗口的修改属性来对数据表逐个进行修改. 当数据窗口是用来接受用户的手工录入数据时,应该设置两方面的属性才能确保数据 ...
- elasticsearch映射相关字段定义,属性定义,及动态映射(marvel插件方式)mapping
1.什么是Mapping映射? 映射:创建索引的时候,可以预先定义字段的类型及相关属性 作用:这样会让索引建立的更加的细致和完善 分类:静态映射和动态映射 Type ES type Descripti ...
- JPA学习笔记---JPA实体Bean的建立---链接上一个博文:对实体Bean中属性进行操作:保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数据,可以存放
3.给上述生成的那个name字段:更改数据库中的字段名,是否为空,字段长度的设定,只需要 在Person.java文件中,加上 @Column(length=10,nullable=false,n ...
- 《地理信息系统基础实例操作100例》-实验15 设置字段属性域(无法创建要素问题)
<地理信息系统基础实例操作100例>-实验15 设置字段属性域(无法创建要素问题) 零.观前须知 一.基本流程 二.所遇问题 三.解决方法(之一) (一)ArcCatalog操作 (二)A ...
- sql增加字段,修改字段属性,设置字段不为空,设置默认值
新增字段 ALTER TABLE 表名 ADD 字段名 BIT NOT NULL DEFAULT 0; EXEC sys.sp_addextendedproperty @name=N'MS_Descr ...
- ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性
向表或要素类表.要素图层和/或带属性表的栅格添加字段并设置字段属性,是我们在数据建库或处理时常常要用到的操作,实现的方法非常多. 一.逐一添加字段的常见操作 1.打开属性表--添加字段. 2.使用字段 ...
- Elasticsearch 设置默认值的三种方式
1.实战问题 在使用 Elasticsearch 过程中,不免还会有 Mysql 等关系型数据库的使用痕迹,以下两个都是实战开发问到的问题: Elasticsearch 新增字段,能在 Mapping ...
- elasticSearch Alternatively use a keyword field instead.
elasticSearch Alternatively use a keyword field instead 情景再现 原因分析 情景再现 索引user中有三个字段,根据age进行排序查询出现的问题 ...
- Elasticsearch:Text vs. Keyword - 它们之间的差异以及它们的行为方式
很多刚开始学习 Elasticsearch 的人经常会混淆 text 和 keyword 字段数据类型. 它们之间的区别很简单,但非常关键. 在本文中,我将讨论两者之间的区别.如何使用它们.它们的行为 ...
- 【Android NDK 开发】JNI 方法解析 ( C/C++ 设置 Java 对象字段 | 查找字段 | 设置字段 )
文章目录 I . 设置 Java 对象 属性 流程 II . 查找 Java 对象属性 ( GetFieldID ) III . 设置 Java 对象属性 ( SetXxxField ) I . 设置 ...
最新文章
- 在虚拟机中 windows 2003 装.net framework 3.5 出现问题.
- iview 表单 验证_iview必备技能一、表单验证规则
- mysql分页查询语法
- Linux循环链表删除节点,删除循环单链表开头元素
- 【项目实战】P2P金融数据指标分析
- NumPy (6)-结构化数据类型数组
- Ubuntu 16.04 Hadoop-2.7.3全分布模式 + eclipse hadoop
- 复练-软考网规-机房建设规范专题
- Typora + PicGo + Aliyun OSS + CSDN
- Eclipse或MyEclipse—在Eclipse或MyEclipse中如何将jar包和相应的源代码关联起来
- java全栈_java全栈的知识技能
- GkCTF2020逆向部分wp
- windows截图保存自动化脚本以及设置快捷键一键运行
- 数据库概述09(数据库中的锁机制)
- 技术团队人员管理:组建团队的方式
- Vivado:【1】Vivado 2018.3 配置ModelSim仿真
- iic获取salve设备地址_Linux下使用IIC总线读写EEPROM(读写i2c从设备通用程序)
- java老鼠走迷宫算法_老鼠走迷宫java算法
- 软件版本号详解,Alpha、Beta、RC、Stable、Release、GA、RTM、RTL、OEM、
- idea模块加载失败