将索引字段设置为not_analyzed然后执行通配符查询,它是否显示低性能?

时间:2013-03-27 01:45:45

标签: elasticsearch

将索引字段设置为not_analyzed,然后执行通配符查询,是否显示低性能? ......是否有任何问题导致它出现低性能????

1 个答案:

答案 0 :(得分:1)

是。通配符查询效率不高。

反向索引非常有效,因为对于您要搜索的每个术语,都有一个条目。但是,您的通配符查询未按预期使用反向索引。

例如,如果您在"foo*"上搜索,则必须找到以"foo"开头的倒排索引中的所有字词,然后搜索所有字词。这可能非常缓慢且占用大量内存。

如果您知道要进行通配符搜索,则应相应地分析数据。使用ngram或edge-ngram标记生成器分析您的字段,以便索引部分匹配。这将允许反向索引按预期运行。