【问题标题】:Elasticsearch - Disable fuzzy search for numbers in stringElasticsearch - 禁用对字符串中数字的模糊搜索
【发布时间】:2018-01-30 09:08:07
【问题描述】:

我正在尝试实现弹性搜索来搜索产品。某些产品名称包含数字。我使用模糊搜索让用户的生活更轻松,但我不希望对数字进行模糊搜索。我可以只对数字禁用模糊搜索,但对字符串中的其余字符使用它吗?

或者是弹性搜索不适合我想要实现的目标?

当我搜索 Manufacturer TV 55" 时搜索电视或显示器时的示例 我不希望 Manufacturer TV 65" 出现在结果中。至少不在前 10 名。

【问题讨论】:

  • 我现在也有同样的要求,不知道怎么解决
  • 你找到解决办法了吗?
  • @MariumMalik 不,我没有。我仍然对解决方案感兴趣,但我没有积极寻找。
  • 我使用的是 PHP,所以我将数字分开并从中消除了模糊性。没有从 Elasticsearch 方面找到任何解决方案。

标签: elasticsearch elasticsearch-5 fuzzy-search


【解决方案1】:

您可以检查搜索字符串是否为数字。在 C# 中:

bool searchStringIsNumeric = int.TryParse(searchString, out int n);

在 Elastic Search 中,您可以执行以下操作:(在此处使用嵌套客户端)

.Fuzziness(searchStringIsNumeric ? Fuzziness.EditDistance(0) : Fuzziness.AutoLength(4, 7))

【讨论】:

    猜你喜欢
    • 2020-07-02
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 2010-09-24
    • 2018-04-30
    相关资源
    最近更新 更多