【问题标题】:Elasticsearch - nGram on documents but not the search termsElasticsearch - 文档上的 nGram,但不是搜索词
【发布时间】:2014-05-29 14:10:38
【问题描述】:

我显然误解了 nGram 如何与 Elasticsearch 一起工作。我希望能够有效地搜索子字符串。这样我就可以输入“大声”,但仍然可以找到“云”之类的词。我将 nGram 标记器设置为 min=2 和 max=10。

显然,nGram 将搜索词 ('loud') 拆分为 'lo'、'ou'、'ud'、'lou'、'oud' 和 'loud'。在某些情况下,这很好,因为如果我搜索“云”,它会发现“更响亮”。但是,我认为通常它只会让我的用户感到困惑。

有没有办法防止 Elasticsearch 拆分搜索词?我尝试在查询字符串中使用引号,但这似乎不起作用。

【问题讨论】:

    标签: elasticsearch full-text-search n-gram


    【解决方案1】:

    您应该为映射中的索引和搜索指定 2 个单独的分析器,称为 index_analyzersearch_analyzer。索引分析器与搜索分析器相同,但添加了 nGram 过滤器。

    【讨论】:

    • 昨晚我意识到我所要做的就是为搜索分析器使用标准分析器。我使用相同的分析器进行索引和搜索,这导致了我的问题。你把它钉在了头上。
    • 希望你能在这里找到自己感兴趣的东西euphonious-intuition.com/2012/08/…
    猜你喜欢
    • 2014-08-13
    • 2021-05-20
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多