elasticsearch中DSL之Span queries
引言
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相关推荐
- Elasticsearch的DSL搜索
Elasticsearch的DSL搜索 一.数据准备 1.创建对应的索引库 2.给索引库创建对应的映射 POST 192.168.1.117:9200/sell/_mapping {"pro ...
- 如何用你最熟悉的 SQL 来查询 Elasticsearch 中的数据?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! Elasticsearch 是一个全文搜索引擎,具有您期 ...
- elasticsearch中的API
elasticsearch中的API es中的API按照大类分为下面几种: 文档API: 提供对文档的增删改查操作 搜索API: 提供对文档进行某个字段的查询 索引API: 提供对索引进行操作 查看A ...
- 第三章 Elasticsearch Query DSL -- 查询
第三章 Elasticsearch Query DSL -- 查询 摘要 查询和过滤的上下文(context) 相关性得分 查询上下文 过滤上下文 示例(下面这些查询参数,后续会详述) 全文查询 in ...
- Elasticsearch:在 Elasticsearch 中使用语言识别进行多语言搜索
我们很高兴地宣布,随着机器学习推理摄入处理器 (inference ingest processor)的发布,我们还将在 Elasticsearch 7.6 中发布语言识别. 在此发行版中,我们希望借 ...
- Elasticsearch中基于词项的搜索
为了方便我们学习,我们导入kibana为我们提供的范例数据. 目前为止,我们已经探索了如何将数据放入Elasticsearch,现在来讨论下如何将数据从Elasticsearch中拿出来,那就是通过搜 ...
- 在Elasticsearch中实现统计异常检测器——第一部分
Implementing a Statistical Anomaly Detector in Elasticsearch - Part 1 该图显示了4500万个数据点的最小/最大/平均值(超过600 ...
- 在Elasticsearch中实现统计异常检测器——第三部分
Implementing a Statistical Anomaly Detector in Elasticsearch - Part 3 欢迎来到Elasticsearch建立统计异常检测器的第三期 ...
- 4 ElasticSearch RestFulAPI(DSL)
ElasticSearch RestFulAPI(DSL) 1 全局操作 1.1 查看集群健康情况 API:GET /_cat/health?v ?v表示显示头信息 集群的健康状态有红.黄.绿三个状态 ...
最新文章
- 关于学习Python的一点学习总结(31->继承及多态)
- Spring boot 和Vue开发中CORS跨域问题
- tomcat android https,tomcat 配置 https, android端 访问
- python一维平滑滤波_高斯滤波器的原理及其实现过程(附模板代码)
- 多值参数-数字累加案例演练
- 记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑
- matlab 写excel 慢_我在12w+的Python库中,发现了让Excel快到起飞的秘密......
- oracle高水位线
- Oracle中用于发送邮件的存储过程
- 【2022跨年】最浪漫的表白烟花,送给新的一年的自己(源码)
- ae输出quicktime设置_AE设置渲染输出视频及视频格式技巧教程
- 【Apache+Tomcat+Session+Memcache 高性能群集搭建】
- 2018我们讲一下百度云BAE专业引擎的使用
- Xcode6以后如何用企业证书发布应用
- 闲鱼的排名规则是什么,闲鱼排名规则方法?
- 2020国内外常用的BI商业智能软件
- 京东数据库智能运维平台建设之路
- ParallaxOcclusionMapping( POM ) DX9
- 惠普服务器开机显示系统恢复选项,惠普一键恢复出厂设置【操作办法】
- 基于Python的Covid-19全球疫情数据分析预测 文档+项目源码及数据