ElasticSearch Query DSL Query and filter

关联分数

关联分数用来衡量文档和查询条件的匹配度。默认情况下,es通过关联分数对匹配到的文档进行排序。
关联分数是一个大于0的浮点数,分数越高匹配度越高。关联分数的计算不仅因查询类型的不同而不同,还和查询语句是在Query context和filter context有关。

Query context

Query context 不仅回答了文档和条件是否匹配,还通过计算文档和查询条件的关联分数,回答了文档和条件的匹配程度。

Filter context

Filter context 仅仅回答了文档和查询条件是否匹配,不计算关联分数。
通常使用filters,es通常会自动缓存查询结果来提高效率。

项目总结

目前个人项目中没有需要分数的地方,Query DSL用到的是
Term-level queries:
	Exists
	Fuzzy
	IDs
	Prefix
	Range
	Regexp
	Term
	Terms
	Terms set
	Type Query
	Wildcard
组合查询:
	Boolean:
		filter
		must_not
 BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
 boolQuery.filter(termQuery(fname,fvalue));
 //and other filter clause etc.
 SearchQuery searchQuery = new NativeSearchQueryBuilder()
                .withQuery(boolQuery)
                .withPageable(pageable)
                .withIndices(getIndex(idx))
                .withTypes(type)
                .build();

下一篇

Search APIs
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值