S5-SearchModule

 

在SearchModule模块中,主要涵盖了search性能相关的依赖注入。

searchModule所挂靠的服务


configureSearch

主要是seach type,search过程一般有两步,首先search带回<_id, _score>,然后fetch带回<_id, _source>。 默认是query_then_fetch,shard级别的排序;可以设置为dfs_query_then_fetch,cluster级别的全局排序。它们之间的差异可以参见esCn的柠檬排序

search方式


configureAggs

在此配置聚合操作,如SUM,AVG,MIN,MAX,直方图分布等。 聚合操作

在static块上面,进行了es aggregation的三种类型(metrics, bucket, pipeline)注册。

static的三种aggs注册


configureFunctionScore

配置自定义排序函数,具体函数使用方法可以参考前文-elasticsearch relevance scoring 检索相关性计算

ScoreFunctionParser的具体实现类


configureFetchSubPhase

在此注入一些额外信息,比如explain, version, highlight等。

others


Reference

  • [Java: What is the difference between and ?](https://stackoverflow.com/questions/8517121/java-what-is-the-difference-between-init-and-clinit)