可以对任何多词项查询(前缀查询和通配符查询)使用rewrite参数来控制查询改写
rewrite参数选项
- scoring_boolean:将每个生成的词项转化为布尔查询中的一个或从句(should clause)
- constant_score_boolean:与scoring_boolean类似,但是cpu消耗少
- constant_score_filter:
- top_tearm_N;
- top_terms_boost_N
总结:如何决定使用何种查询改写方法呢?简单的说:如果你接受低精度(往往伴随着高性能),那么可以采用topN查询改写方法,如果你需要更高的查询精度(往往伴随着低性能),那么采用布尔方法
二次评分:重新计算查询返回文档中指定个数文档的得分,这意味着es查询会截断查询返回文档的前N个,并使用预定义的二次评分方法来重新计算他们的得分