Elasticsearch - nGram关于文档而不是搜索术语

时间:2014-05-29 14:10:38

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

我显然误解了nGram如何与Elasticsearch合作。我希望能够有效地搜索子字符串。这样我就可以输入'响亮'并仍然找到像'云'这样的词。我将我的nGram标记器设置为min = 2和max = 10.

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

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

1 个答案:

答案 0 :(得分:1)

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