java searchfilter_java – ElasticSearch – 使用FilterBuilders

我是ElasticSearch和Couchbase的新手.我正在构建一个示例

Java应用程序来了解有关ElasticSearch和Couchbase的更多信息.

阅读ElasticSearch Java API,过滤器更好地用于不需要排序和缓存的情况.

我还没有想到如何使用FilterBuilders并有以下问题:

可以单独使用FilterBuilders进行搜索吗?

>或者它们是否必须与查询一起使用? (如果是,有人可以列举一个例子吗?)

>通过文档,如果我要根据字段值执行搜索并想要使用FilterBuilders,那我该怎么做呢? (使用AndFilterBuilder或TermFilterBuilder或InFilterBuilder?我不清楚它们之间的区别.)

对于第三个问题,我实际上使用查询测试它,并使用如下所示的过滤器.

当我尝试使用FilterBuilders进行搜索时,我得到了空的结果(没有行).我不知道我做错了什么

任何例子都将有所帮助.我经历了艰难的时间,我发现稀少的文档,甚至搜索导致各种不可靠的用户论坛.

private void processQuery() {

SearchRequestBuilder srb = getSearchRequestBuilder(BUCKET);

QueryBuilder qb = QueryBuilders.fieldQuery("doc.address.state","TX");

srb.setQuery(qb);

SearchResponse resp = srb.execute().actionGet();

System.out.println("response :" + resp);

}

private void searchWithFilters(){

SearchRequestBuilder srb = getSearchRequestBuilder(BUCKET);

srb.setFilter(FilterBuilders.termFilter("doc.address.state","tx"));

//AndFilterBuilder andFb = FilterBuilders.andFilter();

//andFb.add(FilterBuilders.termFilter("doc.address.state","TX"));

//srb.setFilter(andFb);

SearchResponse resp = srb.execute().actionGet();

System.out.println("response :" + resp);

}

–UPDATE–

如答案所示,改为小写“tx”的作品.这个问题解决了.我还有以下几个问题:

>在什么情况下,与查询一起使用的过滤器?这将服务于什么目的?

> InFilter,TermFilter和MatchAllFilter之间的区别.任何插图都会有帮助.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值