首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索多项搜索

弹性搜索多项搜索
EN

Stack Overflow用户
提问于 2015-05-09 04:36:57
回答 1查看 500关注 0票数 1

我正在使用Elasticsearch来允许用户输入要搜索的术语。例如,我想搜索以下属性“名称”:

'name': 'The car is black'

如果以下内容用于搜索black carcar black,我希望返回此文档。

我试着做了一个bool必须和多个术语的['black', 'car'],但它似乎只有在整个字符串是匹配的情况下才有效。

所以我真正想做的是,这个词是否包含了两个词的任何顺序。

谁能帮我走上正确的轨道吗?我把头撞在这上面已经有一阵子了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-09 16:32:00

如果它似乎只在整个字符串是匹配的情况下才有效,那么首先要确保在索引映射中分析字符串属性name,即该属性的映射不包含"index": "not_analyzed"。如果不是这样,则需要重新索引索引,以便能够搜索标记,而不仅仅是整个短语。

一旦确定对字符串进行了分析,就可以使用:

  1. 带有"minimum_should_match"参数的术语查询与输入的字数相等。
  2. 包含每个单词的术语查询的必须子句的Bool查询。
  3. 通用术语查询具有很好的简洁语法(您不需要在应用程序中分解输入字符串和构造更复杂的查询结构,就像前两个程序一样),此外,还可以采用更聪明的方法来停止分析。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30136051

复制
相关文章

相似问题

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