es7.x(7)—短语搜索(match_phrase)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es7.x(7)—短语搜索(match_phrase)相关的知识,希望对你有一定的参考价值。
参考技术Aphrase: [freɪz] 短语
ES7.x官方文档—匹配词组搜索
match_phrase搜索的数据类型为 text 类型,会将查询条件进行分词,但要求待匹配的文档需要同时包含分词后的数据。
流程:
query条件会进行分词,得到 go 和 redis 两个条件。去寻找同时包含这两个条件的文档。
如下图2.2-1所示,doc文档中不存在同时存在 go 和 redis 两个词语的name字段,故未找到。
match_phrase的分词结果必须在被检索字段的分词中都包含时,match_phrase分词结果也会计算在doc中的顺序。match_phrase的分词的doc中越靠近,则评分越高。
当然可以通过slop参数来控制 短语 的偏移量:
短语 搜索到的doc文档,不必顺序相同,只要slop足够,依旧可以搜索出来。
相当参数:
es 基于match_phrase/fuzzy的模糊匹配原理及使用
ElasticSearch系列——使用rescoring机制优化近似匹配搜索的性能
聚类搜索短语
【中文标题】聚类搜索短语【英文标题】:Clustering search phrases 【发布时间】:2012-10-29 08:18:12 【问题描述】:我正在解决这个问题,我需要根据他们正在寻找的内容对搜索词组进行聚类(现在,我们假设他们只在寻找地方,例如书店、超市等)
“我在哪里可以找到芝士蛋糕?” 可以概率地聚集到“甜点”、“餐厅”……
“我在哪里可以买到杂货?” 可以概率性地聚集到“超市”、“蔬菜”……
假设一开始,一组搜索短语可以归类到的内容已经存在。
我研究了主题建模,但我觉得我可能走错了方向。关于如何开始/研究什么的任何建议都会非常有帮助。
非常感谢。
【问题讨论】:
这看起来像query rewriting
。 slideshare.net/lundjohnson/2011-07-27-bay-area-search
你有什么样的数据可用?
【参考方案1】:
主题建模当然提供了一种可能的解决方案。从大型语料库中归纳出一个主题模型,尽可能代表您正在索引和搜索的文本。然后将每个查询表示为给定查询的主题的后验。如果您想获得查询集群,则可以在这个缩减集上执行此操作,或者如果您正在执行 IR,您可以使用结果向量而不是原始词袋。
如果这不是您想要的,您能详细说明问题吗?您希望如何处理集群查询?
【讨论】:
以上是关于es7.x(7)—短语搜索(match_phrase)的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch - Java API 操作 ES7.16.0+ES8.x 索引,文档;高级搜索
Es7.x使用RestHighLevelClient进行查询操作
ELK学习002:Elasticsearch 7.x 的安装及配置