elasticsearch - Elasticsearch-关于文档的nGram,但不包括搜索词

标签 elasticsearch full-text-search n-gram

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

显然,nGram将搜索词(“大声”)分为“lo”,“ou”,“ud”,“lou”,“oud”和“loud”。在某些情况下,这很好,因为如果我搜索“cloud”,它将找到“louder”。但是,我认为通常这只会使我的用户感到困惑。

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

最佳答案

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

关于elasticsearch - Elasticsearch-关于文档的nGram,但不包括搜索词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23935416/

相关文章:

php - 全文搜索中的 MySql SQL_CALC_FOUND_ROWS 问题

hibernate - 在特定查询上出错

solr - 在 solr 中哪种搜索更好(性能方面)?使用 EdgeNGram 或通配符搜索自动完成?

lucene - 获取 ngram 频率时,Lucene 输出中的下划线带有停用词

elasticsearch - 在 bluemix Kibana 中正确解析我的容器日志

elasticsearch - 如何在C#中传递方法数组

jdbc - Elasticsearch JDBC River未索引数组

node.js - Sequelize : full text search using symbol based operators

elasticsearch - Elasticsearch:使用特殊字符打开和关闭括号进行搜索

r - NGramTokenizer 未按预期工作