我想了解lucene的每个索引文件(nvd、dvd、tim、doc.主要在ES查询中使用这四个)。例如,假设我的索引有10个文档,并且我正在进行聚合查询。我想了解ES/Lucene是如何在一个查询中访问这四个文件的。
我正在尝试是否可以在我的系统中进行一些优化,以加快查询性能。我的系统主要是一个磁盘密集型系统。我查看了ES代码,了解到QueryPhase是最昂贵的,而且它似乎对我所拥有的面向日志的数据进行了大量的随机访问。
我现在也想更深入地研究lucene级别,并可能调试代码并查看实际操作。Lucene代码没有IndexReader相关类的日志消息。而且,直接调试lucene代码似乎没有什么帮助,因为单元测试不会为tim、doc、nvd、dvd文件创建索引
有什么建议吗?
发布于 2018-05-24 09:38:07
据我所知,ES不会在搜索细节上做太多工作,如果你想优化搜索,我的经验是优化你的数据布局,以下是一些重要的lucene文件描述:
(请参阅http://lucene.apache.org/core/7_2_1/core/org/apache/lucene/codecs/lucene70/package-summary.html#package.description):
上的#
并且有一些要点可以优化性能:
包括尝试使用较小日期类型,例如: INTEGER或LONG values,而不是在不必要的字段上添加STRING.
https://stackoverflow.com/questions/50498158
复制相似问题