elasticsearch 短语查询(match_phrase)
来源:互联网 发布:天津软件协会网站 编辑:程序博客网 时间:2024/05/18 01:56
1、match_phrase
就像 match
查询对于标准全文检索是一种最常用的查询一样,当你想找到彼此邻近搜索词的查询方法时,就会想到 match_phrase
查询 。
GET /my_index/my_type/_search{ "query": { "match_phrase": { "title": "quick brown fox" } }}类似
match
查询, match_phrase
查询首先将查询字符串解析成一个词项列表,然后对这些词项进行搜索,但只保留那些包含 全部 搜索词项,且 位置 与搜索词项相同的文档,且中间不许夹杂其他词。 比如对于 quick fox
的短语搜索可能不会匹配到任何文档,因为没有文档包含的 quick
词之后紧跟着 fox
。2、词项的位置
当一个字符串被分词后,这个分析器不但会 返回一个词项列表,而且还会返回各词项在原始字符串中的 位置 或者顺序关系:
GET /_analyze?analyzer=standardQuick brown fox
返回:
{ "tokens": [ { "token": "quick", "start_offset": 0, "end_offset": 5, "type": "<ALPHANUM>", "position": 1 }, { "token": "brown", "start_offset": 6, "end_offset": 11, "type": "<ALPHANUM>", "position": 2 }, { "token": "fox", "start_offset": 12, "end_offset": 15, "type": "<ALPHANUM>", "position": 3 } ]}
position
代表各词项在原始字符串中的位置。
位置信息可以被存储在倒排索引中,因此 match_phrase
查询这类对词语位置敏感的查询, 就可以利用位置信息去匹配包含所有查询词项,且各词项顺序也与我们搜索指定一致的文档,中间不夹杂其他词项。
一个被认定为和短语 quick brown fox
匹配的文档,必须满足以下这些要求:
quick
、brown
和fox
需要全部出现在域中。brown
的位置应该比quick
的位置大1
。fox
的位置应该比quick
的位置大2
。
如果以上任何一个选项不成立,则该文档不能认定为匹配。
本质上来讲,match_phrase
查询是利用一种低级别的 span
查询族(query family)去做词语位置敏感的匹配。 Span 查询是一种词项级别的查询,所以它们没有分词阶段;它们只对指定的词项进行精确搜索。
值得庆幸的是,match_phrase
查询已经足够优秀,大多数人是不会直接使用 span
查询。 然而,在一些专业领域,例如专利检索,还是会采用这种低级别查询去执行非常具体而又精心构造的位置搜索。
阅读全文
0 0
- elasticsearch 短语查询(match_phrase)
- Elasticsearch - 短语匹配(match_phrase)以及slop参数
- elasticsearch 多词短语位置匹配查询
- elasticsearch-多词短语无序查询
- ES查询-match VS match_phrase
- ElasticSearch(四):查询
- python 短语查询(中文版本+英文版本)
- Elasticsearch(十三)elasticsearch请求体查询
- [ElasticSearch]term 精确匹配 中文字符串短语
- [ElasticSearch]Term精确匹配中文字符串短语
- lucene-PhraseQuery通过短语查询
- 使用python实现短语查询
- elasticsearch-查询
- Elasticsearch查询
- Elasticsearch查询
- ElasticSearch查询
- Elasticsearch 查询
- 短语
- enum
- 什么是MVC模式?
- BidQuoteObserver
- Elasticsearch 连接查询
- 终端执行python脚本 (for Mac)
- elasticsearch 短语查询(match_phrase)
- TOP链目前的局势战略
- Deep Q Network (DQN)
- linux-netstat
- Channel
- nodejs http.request 参数格式之querystring
- 【jQuery】利用jTemplates实现兼容IE6的jQuery模板化
- CDH 安装 sqoop
- 【转】CS231N课程笔记翻译