在最初创建索引mapping时,未指定index:not_analyzed

"exact_value": {
"type": "string"
}

这样导致的后果就是 exect_value字段不能使用es的terms语法来做匹配整个字段的查询,原因是terms要求分词器不要对字段分词,否则无法使用该语法

如果想要一个字符串像数字一样能被全词匹配(类似与sql中的等于),则需要在创建字段时指定一下,如

"exact_value": {

"type": "string",

"index": "not_analyzed"

}

如果问题已经存在,则会是让人挣扎的事情。

修改es文档字段的定义代价远比新增一个字段大得多,甚至需要将数据库重新同步到es中,中间还需要一个临时索引来过渡

  • 可以考虑在es中新增一个字段来做这件事。代价也比较大,时间长了,大家可能都会忘记加新字段的原因
  • 退而求其次,根据业务判断,是否可以放弃terms查询,改为 matchPhrase 语法来精确查询包含所有关键字的文档。当然,这存在前提:业务模型中,该字段不能存在包含当前数据的文档

    如 exact_value: 你好 ;如果另一个文档的exact_value:你好 xx;则这两个文档都会被匹配出来,如果exact_value的值是一个不含停词的字段且全是字母,则不会被分词器分为多个单词,基本可以使用matchPhrase代替terms查询。

ES index not_analyzed的更多相关文章

  1. ES - Index Templates 全局index模板

    1.Index Templates 之前我们聊过Dynamic template,它作用范围是特定的Index,如果我们想针对全局Index进行设置该如何操作呢? Index Templates 可以 ...

  2. Spark2.2+ES6.4.2(三十二):ES API之index的create/update/delete/open/close(创建index时设置setting,并创建index后根据avro模板动态设置index的mapping)

    要想通过ES API对es的操作,必须获取到TransportClient对象,让后根据TransportClient获取到IndicesAdminClient对象后,方可以根据IndicesAdmi ...

  3. 浅析ES的_source、_all、store、index

    Elasticsearch中有大量关键概念容易混淆,对于初学者来说是噩梦: _source字段里存储了什么? index属性的作用是什么? 何时应该开启_all字段? store属性和_source字 ...

  4. ES 学习总结

    ES 总结: es 是基于lucene的, 是java 实现的, 很多概念和lucene是相同的 索引-- 对应数据库的表,mongoDB中的集合 文档,由字段组成, 一个字段可以出现多次. 字段,其 ...

  5. ES数据-MySql处理Date类型的数据导入处理

    用ES的小伙伴们,相信大家都遇到过Mapping处理Date类型的数据头疼问题吧. 不用头疼了,我来给你提供一种解决方案: 1.Maping定义为: {  "mappings": ...

  6. es搜索引擎

    1.es简介 2.es优缺点 3.es使用 4.es可以解决的问题 5.es举例 6.es执行结果截图 7.es数据增量方案 8.使用es搜索 一.es简介 es是一个是一个实时的分布式搜索和分析引擎 ...

  7. ES 中的那些坑

    数组 1. 数组中的 full-text 字段将被 [analyzed] 2. 数组中[所有元素]的数据类型必须一致 3. 数组的数据类型,以其 [第一个元素]为准 映射 1. 数据类型会自动进行转化 ...

  8. logstash 输出到elasticsearch 自动建立index

    由于es 单index 所能承受的数据量有限,之前情况是到400w数据300G左右的时候,整个数据的插入会变得特别慢(索引重建)甚至会导致集群之间的通信断开,于是我们采用每天一个index的方法来缓解 ...

  9. ES 15 - Elasticsearch中的数据类型 (text、keyword、date、geo等)

    目录 1 核心数据类型 1.1 字符串类型 - string(不再支持) 1.1.1 文本类型 - text 1.1.2 关键字类型 - keyword 1.2 数字类型 - 8种 1.3 日期类型 ...

随机推荐

  1. 1.4Hadoop伪分布式安装

  2. @Autowried入门和源码分析

    话不多说直接上代码: 声明一个接口userDao: package ioc.hello; public interface UserDao { public void test(); } 2个实现类: ...

  3. 1500多套微信小程序带后端源码-史上最全的不同行业的源码集合

    如何下载获取在最后面! 部分源码 部分源码 部分源码 部分截图 o2o行业 | - 盒马鲜生 | - 轻客洗衣 互联网行业 | - 云文档 | - 仿ofo共享单车 | - 仿美团外卖 | - 仿饿了 ...

  4. Azure Storage 系列(六)使用Azure Queue Storage

    一,引言 在之前介绍到 Azure Storage 第一篇文章中就有介绍到 Azure Storage 是 Azure 上提供的一项存储服务,Azure 存储包括 对象.文件.磁盘.队列和表存储.这里 ...

  5. css定位于xpath的区别

    css选择  是依据页面的数据样式定位的, 有标签选择, 类选择, id选择, 或者他们的交并集, 除此之外没有其他的辅助元素了 xpath  是路径表达式,所有元素和内容都可以成为路径的一部分. 两 ...

  6. 线上Redis高并发性能调优实践

    项目背景 最近,做一个按优先级和时间先后排队的需求.用 Redis 的 sorted set 做排队队列. 主要使用的 Redis 命令有, zadd, zcount, zscore, zrange ...

  7. win10 配置 maven | 下载与配置

    <!-- 阿里云仓库 --> <mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf&g ...

  8. 音频数据增强及python实现

    博客作者:凌逆战 博客地址:https://www.cnblogs.com/LXP-Never/p/13404523.html 音频时域波形具有以下特征:音调,响度,质量.我们在进行数据增强时,最好只 ...

  9. mysql5.7开启慢查询日志

    环境:centos7 mysql版本:5.7.28 一.什么是慢查询 MySQL默认10s内没有响应SQL结果,则为慢查询 当然我们也可以修改这个默认时间 查看慢查询的时间 show variable ...

  10. Python3基础——递归

    递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数. 递归函数的优点是定义简单,逻辑清晰.理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰. 使用递归函数需要注意防止栈 ...