gpt4 book ai didi

ElasticSearch - cross_fields 多重匹配与模糊搜索

转载 作者:行者123 更新时间:2023-11-29 02:44:16 28 4
gpt4 key购买 nike

我有代表用户的文档。它们有字段 namesurname

假设我有两个用户编入索引 - Michael Jackson 和 Michael Starr。我希望这些示例搜索有效:

  1. Michael => { Michael Jackson, Michael Starr }
  2. Jack Mich => { Michael Jackson }(不完整的单词和颠倒的顺序)
  3. Michal Star => { Michael Starr }(模糊搜索)

我尝试了不同的查询,并从具有 cross_fields 类型的 multi_match 查询中获得了最佳结果。但是有两个问题:

  1. 它只会在两个单词中至少有一个完整时才能找到内容。如果我键入 Jackson Mich,它会找到 Michael Jackson 但如果我键入 Jack Mich,它什么也找不到(但我希望它找到找到它)。
  2. 不能设置为模糊搜索。我真的需要模糊搜索,但要保持 multi_match 与 cross_fields 类型的质量。

换句话说,我想实现类似 Facebook 的人员搜索

我是 ElasticSearch 的新手,所以我可能遗漏了一些明显的东西。对不起,如果我这样做了。

最佳答案

Jack Mich 的搜索类型

  • 确保在查询时使用 OR 而不是 AND,例如 jack 或米奇
  • 此外,您基本上还想对字段进行部分匹配。为此,您需要在这些字段上启用 nGrams(在映射中执行此操作),以便索引与部分单词匹配

您使用的查询类型正确。这两个应该可以解决你的问题。

PS:我们都在这里学习,一起做很有趣:)

关于ElasticSearch - cross_fields 多重匹配与模糊搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23916180/

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