首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ElasticSearch中的两个字段中搜索部分文本

在ElasticSearch中的两个字段中搜索部分文本
EN

Stack Overflow用户
提问于 2014-03-13 14:30:54
回答 1查看 387关注 0票数 1

我有弹性搜索索引与文档,其中包含两个字段:‘艺术家’和‘跟踪’。我如何管理搜索像‘深紫色烟雾’这样的查询,哪里‘深紫色’将是一个艺术家领域和‘烟雾’是一个开始的田径?我正试图这样做:

代码语言:javascript
复制
self.es.search(MultiMatchQuery(fields=['artist', 'name'], text='deep purple smoke', type='phrase_prefix'), 'mus', 'tracks')

但是,我认为,是试图在艺术家和姓名字段中找到全文“深紫色烟雾”,而不是在“艺术家”和“姓名”字段中搜索每个单词,并返回包含最高结果的文档。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-13 15:21:41

您是正确的,它作为短语搜索,因为您将类型设置为'phrase_prefix'。而是使用另一种类型。我相信'most_fields'是最好的选择,尽管'best_fields''cross_fields'也可能是一个合理的选择。

匹配文档

  • most_fields -查找与任何字段匹配的文档,并从每个字段组合_score。
  • cross_fields --用相同的分析器处理字段,就像它们是一个大字段一样。查找任何字段中的每个单词。
  • best_fields -查找与任何字段匹配的文档,但在最佳字段中使用_score。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22381803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档