gpt4 book ai didi

elasticsearch - Elasticsearch多词搜索

转载 作者:行者123 更新时间:2023-12-03 00:21:54 25 4
gpt4 key购买 nike

我正在使用Elasticsearch允许用户键入要搜索的术语。例如,我要搜索以下属性“名称”:
'name': 'The car is black'
如果以下内容用于搜索black carcar black,我希望返回此文档。

我试图做一个 bool(boolean) 值必须做多个术语['black', 'car'],但似乎只有在整个字符串都是匹配的情况下它才起作用。

因此,我真正想做的是,该术语是否以任何顺序包含两个词?

有人可以让我走上正确的路吗?我一直在这头上撞了一段时间。

最佳答案

如果看起来只有在整个字符串都匹配时才起作用,请首先确保在索引映射中分析了字符串属性name,即该属性的映射不包含"index": "not_analyzed"。如果不是这样,则需要重新索引索引,以便能够搜索标记,而不是仅搜索整个短语。

确定您的字符串已分析后,可以使用:

  • 使用"minimum_should_match"参数等于输入的单词数的术语查询。
  • 带有must子句的 bool(boolean) 查询,其中每个单词都包含术语查询。
  • Common terms query为此目的提供了一种非常简洁的语法(您不需要像前面的两个方法那样分解输入字符串并在您的应用程序中构造更复杂的查询结构),而且采取了更聪明的方法来分析停用词。
  • 关于elasticsearch - Elasticsearch多词搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30136051/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com