使用索引排序加速合取查询
编辑使用索引排序加速合取查询
编辑索引排序可以用来组织 Lucene 文档 ID(不要与 _id
混淆),使其能够更高效地进行合取查询(a AND b AND …)。为了提高效率,合取查询依赖于这样一个事实:如果任何一个子句不匹配,则整个合取查询都不匹配。通过使用索引排序,我们可以将不匹配的文档放在一起,这将有助于高效地跳过大范围不匹配的文档 ID。
这个技巧只适用于低基数字段。一个经验法则是,您应该首先对那些基数较低且经常用于过滤的字段进行排序。排序顺序(asc
或 desc
)并不重要,因为我们只关心将匹配相同子句的值彼此靠近放置。
例如,如果您正在为待售汽车建立索引,那么按燃料类型、车身类型、品牌、注册年份以及最后是里程数进行排序可能会很有意义。