我现在主要做的业务是有关实时查询功能相关的,用的最多的就是elasticsearch,前端时间碰到一个特别有趣的问题,跟大家分享一下。

前几天有用户反馈间隔查询的问题,真实的数据在这不方便展示,我就用自己的一个假数据案例给大家还原一下真实场景。

客户A: 我在你们数据库查询标题,“中华 共和国 (间隔2字内)”为什么查不到“中华人民共和国民法通则”这个记录呢?
我:收到,我这边排查一下问题哈。(特别客气的回复)

内心os: 这tm怎么可能呢,明明就是两个字的啊,难道是我写了个bug?

打开我的mac本,开始排查一顿操作,确实是没有,查询结果见下图:

下图为不做间隔查询的结果:

(在此说明一下,我中文分词器用的是ik分词器)
此刻我的内心:

此时开始google,询问我们项目组的大神。一顿讨论下来,难道es为了效率,用的是它分词后的position。

查看“中华人民共和国民法通则”的分词结果:

可以看到“中华”和“共和国”之间按照postion,间隔为4。
然后修改一下我们的查询语句,操作看一下:

居然可以了!!!!

总结一下这个问题:

es的间隔查询是按照分词后下面的postion之间的间隔,这样保证了它的效率。

如果我们使用ik分词的话,这个查询会让我们造成误解,对我们实际的意义不大。

如果我们分词使用的是逐字分词(比如standard),还是不错的。

小编叨逼叨:

脱离业务谈技术都是耍流氓。任何技术都不是完美的,结合业务选择合适的技能负责任的好猿。

Elasticsearch中间隔查询slop原理相关推荐

  1. (十九)WebGIS中I查询的原理及设计(包含AGS、GeoServer、Supermap)

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 我们在使用arcmap时,经常会用到被称为I查询的工具.具体 ...

  2. elasticSearch 中的查询关键词

    match_all match_all 查询简单的匹配所有文档.在没有指定查询方式时,它是默认的查询:{ "match_all": {}} . match 如果你在一个全文字段上使 ...

  3. ElasticSearch中的简单查询

    前言 最近修改项目,又看了下ElasticSearch中的搜索,所以简单整理一下其中的查询语句等.都是比较基础的.PS,好久没写博客了..大概就是因为懒吧.闲言少叙书归正传. 查询示例 http:// ...

  4. Elasticsearch中的Term查询和全文查询

    Elasticsearch中的Term查询和全文查询 前言 Term 查询 exists 查询 fuzzy 查询 ids 查询 prefix 查询 range 查询 regexp 查询 term 查询 ...

  5. Elasticsearch系列---聚合查询原理

    概要 本篇主要介绍聚合查询的内部原理,正排索引是如何建立的和优化的,fielddata的使用,最后简单介绍了聚合分析时如何选用深度优先和广度优先. 正排索引 聚合查询的内部原理是什么,Elastich ...

  6. 如何用你最熟悉的 SQL 来查询 Elasticsearch 中的数据?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! Elasticsearch 是一个全文搜索引擎,具有您期 ...

  7. Elasticsearch中如何进行日期(数值)范围查询

    文章目录 1 范围查询的符号 2 数值范围查询 3 时间范围查询 3.1 简单查询示例 3.2 关于时间的数学表达式(date-math) 3.3 关于时间的四舍五入 4 日期格式化范围查询(form ...

  8. 在Elasticsearch中查询Term Vectors词条向量信息

    这篇文章有点深度,可能需要一些Lucene或者全文检索的背景.由于我也很久没有看过Lucene了,有些地方理解的不对还请多多指正. 更多内容还请参考整理的ELK教程 关于Term Vectors 额, ...

  9. 【Elasticsearch】在Elasticsearch中查询Term Vectors词条向量信息

    1.概述 转载:https://www.cnblogs.com/xing901022/p/5348737.html 关于Term Vectors 额,对于这个专业词汇,暂且就叫做词条向量吧,因为实在想 ...

  10. es java 模糊查询_java使用elasticsearch进行模糊查询-已在项目中实际应用

    java使用elasticsearch进行模糊查询 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路 ...

最新文章

  1. 给女友讲讲设计模式——适配器模式(JAVA实例)5
  2. 刷脸支付弊端举例_刷脸支付的优势和弊端,你都知道?
  3. java log4j logback jcl_内部分享:如何解决Java日志框架冲突问题。
  4. equipment header attribute mapping - two settypes in middleware
  5. 散列冲突与作为特征值的散列
  6. win7更改用户登录或注销方式的操作教程
  7. 乘积最大(信息学奥赛一本通-T1275)
  8. Spring Boot整合批量文件下载功能
  9. 卷积法求解系统的零状态响应_动态系统的建模与分析
  10. CentOS 7系统升级备份恢复实验记录
  11. Kotlin入门(7)循环语句的操作
  12. Java中大数据数组,Java基础学习笔记之数组详解
  13. OpenCV 画圆circle、画椭圆ellipse
  14. C++构造函数详解(复制构造函数)
  15. 我要自学网python视频教程百度云_180G全套Python视频教程集合
  16. CSDN学习相关页面探讨
  17. Amazon Braket 与量子计算
  18. 一个ntohs函数的实现
  19. C++中的tolower()函数与toupper()函数
  20. 什么是好产品?如何评价产品?谈产品评价体系模型

热门文章

  1. 3DES加密,苹果、Java 、安卓 平台一致的加密工具
  2. crontab任务误删恢复及备份步骤
  3. 【重磅首发新品】AM335x全面升级处理器——AM62x,四核Cortex-A53+M4F,主频1.4GHz
  4. 【题解】LuoGu5423:[USACO19OPEN]Valleys P
  5. 20载辉煌落幕乒坛告别活着的传奇 瓦尔德内尔告别第48届世乒赛
  6. 未能加载程序集oracle.dataaccess 控制台,未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序...
  7. 家中闲置旧电脑改装家用NAS(入门教程)
  8. 乐得瑞专门为笔记本/平板Type-C接口,HOST端解决方案
  9. TTL 传输中过期,内部网络环路
  10. ios微信公众号或浏览器滚动露底漏网址闪动无法固定