引言

span query(范围查询):通过该语句用户可以精准控制搜索词的先后顺序,以及多个搜索词在文档中的前后距离

1.span term

和term查询类似,(但是我实验发现,该句法不能在keyword上精确查找,所以下面的例子都是应用在text类型的字段上)

GET myindex/_search
{"query": {"span_term": {"addr": {"value": "guangzhou"}}}
}

返回结果:

"hits": [{"_index": "myindex","_type": "mytype","_id": "1","_score": 0.25316024,"_source": {"name": "renzhenfei","age": "71","addr": "zhongguo guangdong guangzhou","city": "guangzhou"}}
]

2.span multi term query

多个span term组合查询。目前支持 wildcard, fuzzy, prefix, range or regexp query


GET myindex/_search
{"query": {"span_multi": {"match": [{"prefix": {"addr": {"value": "zhong"}}},{"regexp": {"addr": {"value": "gu.*ou"}}}]}}
}

返回结果:

"hits": [{"_index": "myindex","_type": "mytype","_id": "1","_score": 0.25316024,"_source": {"name": "renzhenfei","age": "71","addr": "zhongguo guangdong guangzhou","city": "guangzhou"}}
]

3.span first

  • end : 确定最大有效词的结束位置 (每个有效词对应一个位置
GET myindex/_search
{"query": {"span_first" : {"match" : {"span_term" : { "addr" : "chengdu" }},"end" : 3}}
}

返回结果:

"hits": [{"_index": "myindex","_type": "mytype","_id": "4","_score": 0.6548752,"_source": {"name": "zhangqiang","age": "32","addr": "zhongguo sichuan chengdu say","city": "chengdu"}}
]

该例子中,chengdu在整个文档的位置为3,所以能查出来;如果end设置为2,将查不到结果。

4.span near query

多个关键词进行顺序查找,并且可以规定他们之间的顺序和间距

  • in_order:确定是否保证顺序
  • slop :每个关键词的之间的最大间隔(每个有效词对应一个位置)[每个有效词也是一个间隔]
GET myindex/_search
{"query": {"span_near" : {"clauses" : [{ "span_term" : { "addr" : "zhongguo" } },{ "span_term" : { "addr" : "shenzhen" } },{ "span_term" : { "addr" : "shennan" } }],"slop" : 3,"in_order" : true}}
}

返回结果:

"hits": [{"_index": "myindex","_type": "mytype","_id": "5","_score": 0.32416862,"_source": {"name": "liyanhong","age": "50","addr": "zhongguo guangdong shenzhen nanshan kejiruan shennan dadao","city": "shenzhen"}}
]

5.span or query

满足其中一个条件就可以返回

GET myindex/_search
{"query": {"span_or" : {"clauses" : [{ "span_term" : { "addr" : "sichuan" } },{ "span_term" : { "addr" : "shenzhen" } },{ "span_term" : { "addr" : "taiwan" } }]}}
}

elasticsearch中DSL之Span queries相关推荐

  1. Elasticsearch的DSL搜索

    Elasticsearch的DSL搜索 一.数据准备 1.创建对应的索引库 2.给索引库创建对应的映射 POST 192.168.1.117:9200/sell/_mapping {"pro ...

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

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

  3. elasticsearch中的API

    elasticsearch中的API es中的API按照大类分为下面几种: 文档API: 提供对文档的增删改查操作 搜索API: 提供对文档进行某个字段的查询 索引API: 提供对索引进行操作 查看A ...

  4. 第三章 Elasticsearch Query DSL -- 查询

    第三章 Elasticsearch Query DSL -- 查询 摘要 查询和过滤的上下文(context) 相关性得分 查询上下文 过滤上下文 示例(下面这些查询参数,后续会详述) 全文查询 in ...

  5. Elasticsearch:在 Elasticsearch 中使用语言识别进行多语言搜索

    我们很高兴地宣布,随着机器学习推理摄入处理器 (inference ingest processor)的发布,我们还将在 Elasticsearch 7.6 中发布语言识别. 在此发行版中,我们希望借 ...

  6. Elasticsearch中基于词项的搜索

    为了方便我们学习,我们导入kibana为我们提供的范例数据. 目前为止,我们已经探索了如何将数据放入Elasticsearch,现在来讨论下如何将数据从Elasticsearch中拿出来,那就是通过搜 ...

  7. 在Elasticsearch中实现统计异常检测器——第一部分

    Implementing a Statistical Anomaly Detector in Elasticsearch - Part 1 该图显示了4500万个数据点的最小/最大/平均值(超过600 ...

  8. 在Elasticsearch中实现统计异常检测器——第三部分

    Implementing a Statistical Anomaly Detector in Elasticsearch - Part 3 欢迎来到Elasticsearch建立统计异常检测器的第三期 ...

  9. 4 ElasticSearch RestFulAPI(DSL)

    ElasticSearch RestFulAPI(DSL) 1 全局操作 1.1 查看集群健康情况 API:GET /_cat/health?v ?v表示显示头信息 集群的健康状态有红.黄.绿三个状态 ...

最新文章

  1. 关于学习Python的一点学习总结(31->继承及多态)
  2. Spring boot 和Vue开发中CORS跨域问题
  3. tomcat android https,tomcat 配置 https, android端 访问
  4. python一维平滑滤波_高斯滤波器的原理及其实现过程(附模板代码)
  5. 多值参数-数字累加案例演练
  6. 记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑
  7. matlab 写excel 慢_我在12w+的Python库中,发现了让Excel快到起飞的秘密......
  8. oracle高水位线
  9. Oracle中用于发送邮件的存储过程
  10. 【2022跨年】最浪漫的表白烟花,送给新的一年的自己(源码)
  11. ae输出quicktime设置_AE设置渲染输出视频及视频格式技巧教程
  12. 【Apache+Tomcat+Session+Memcache 高性能群集搭建】
  13. 2018我们讲一下百度云BAE专业引擎的使用
  14. Xcode6以后如何用企业证书发布应用
  15. 闲鱼的排名规则是什么,闲鱼排名规则方法?
  16. 2020国内外常用的BI商业智能软件
  17. 京东数据库智能运维平台建设之路
  18. ParallaxOcclusionMapping( POM ) DX9
  19. 惠普服务器开机显示系统恢复选项,惠普一键恢复出厂设置【操作办法】
  20. 基于Python的Covid-19全球疫情数据分析预测 文档+项目源码及数据

热门文章

  1. 计算机网络中 碰撞检测,虚拟现实中碰撞检测算法研究
  2. 解决有权限却无法访问共享文件夹
  3. 2023年咸阳市《网络搭建与应用》专业技能大赛试题
  4. Unity vs UE4,虚拟现实开发引擎如何抉择?
  5. 微信小程序 wx.showToast()的用法,更换icon图标
  6. 华为交换机基本配置命令大全
  7. oracle版本号修改工具,Oracle的DMP文件修改版本号
  8. java中containsKey方法
  9. 格局大了,人生的路才会越走越宽!
  10. three 环绕旋转,卫星可以各个角度绕星球旋转