我有一个Elasticsearch索引,其中的一个字段标记为not_analyzed。该字段包含以空格分隔的值列表,如下所示:
Value1 Value2 Value3
现在,我想执行搜索以查找此字段包含“Value2”的文档。我已经测试过使用文本短语前缀进行搜索,但是搜索“Value2”没有任何匹配。另一方面,对“Value1”或“Value1 Value2”的搜索匹配。我不想在搜索中出现任何模糊性,而只希望精确匹配(这就是将该字段设置为not_analyzed的原因)。
有什么办法可以这样搜索吗?
从对Elasticsearch的有限了解,我猜测我需要设置要使用空白分析器进行分析的字段。那正确吗?
最佳答案
正确,使用Standard
或Whitespace
分析器等将单词分解成块,按空格,逗号等分隔。然后simple_query_string查询将与“Value2”匹配,无论其在文档字段中的位置如何。
Standard Analyzer还将对您的字段进行小写,这意味着仅匹配小写的搜索词。
关于indexing - 在not_analyzed字段的中间搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21159257/