Elasticsearch Java API中的筛选查询 [英] Filtered Query in Elasticsearch Java API

查看:629
本文介绍了Elasticsearch Java API中的筛选查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Elasticsearch Java API中创建Filtered查询时,我有点困惑。
SearchRequestBuilder类具有setPostFilter方法,该方法的javadoc清楚地表示在执行Query之后将应用过滤器。



但是,没有setFilter方法或一些允许在执行

查询之前应用过滤器的其他方法。如何创建过滤的Query(这在执行查询之前基本上应用过滤器)?我是否缺少某些东西?

解决方案

  FilteredQueryBuilder builder = 
QueryBuilders.filteredQuery QueryBuilders.termQuery(test,
test),FilterBuilders.termFilter(test,test));

它将构建过滤的查询...对filtersQuery,第一个参数是query,第二个参数是Filter 。



更新:已过滤的查询在弹性搜索2.0 +中折旧。参考



希望它有帮助..!


I am little bit confused while creating Filtered query in Elasticsearch Java API. SearchRequestBuilder class has setPostFilter method, javadoc of this method clearly says that filter will be applied after Query is executed.

However, there is no setFilter method Or some other method which will allow to apply filter before
query is executed. How do I create filtered Query(which basically applies filter before query is executed) here? Am I missing something?

解决方案

 FilteredQueryBuilder builder = 
 QueryBuilders.filteredQuery(QueryBuilders.termQuery("test", 
 "test"),FilterBuilders.termFilter("test","test"));

It will build the filtered query...To filteredQuery, first argument is query and second arguments is Filter.

Update: Filtered query is depreciated in elasticsearch 2.0+.refer

Hope it helps..!

这篇关于Elasticsearch Java API中的筛选查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆