Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
设置索引字段为 not_analyzed 再做通配符查询,会不会显得性能低下?......有什么问题导致它出现性能低下????
是的。通配符查询效率不高。
倒排索引工作得很好,因为它里面有一个你想搜索的词条。但是,您的通配符查询并未按预期使用倒排索引。
例如,如果您搜索"foo*"它必须找到倒排索引中以 开头的所有术语"foo",然后搜索所有这些术语。这可能非常缓慢且占用大量内存。
"foo*"
"foo"
如果您知道要进行通配符搜索,那么您应该相应地分析您的数据。使用 ngram 或 edge-ngram 分词器来分析您的字段,以便索引部分匹配。这将允许倒排索引按预期运行。