弹性搜索java中的弹性搜索查询
我很难用Java实现这个URL查询,它不会返回任何结果。但从浏览器返回所有结果,以下是返回结果的URL:
_search?pretty&q=*357*+AND+account_id:574fe92c9179a809fd76f0b8+AND+invalid:false
这是我的代码(不返回任何结果):
FilterBuilder[] filtersArray = new FilterBuilder[2];
filtersArray[0] = FilterBuilders.termFilter("account_id", "574fe92c9179a809fd76f0b8");
filtersArray[1] = FilterBuilders.termFilter("invalid", false);
QueryBuilder query = QueryBuilders.filteredQuery(QueryBuilders.simpleQueryStringQuery("*357*"), FilterBuilders.andFilter(filtersArray));
SearchResponse response = esClient.prepareSearch(SecurityManager.getNamespace())
.addSort("created_time", SortOrder.DESC)
.setTypes(dataType)
.setQuery(query)
.addFields("_id")
.setFrom(page * size)
.setSize(size)
.setExplain(false)
.execute()
.actionGet();
有人能告诉我什么是将URL查询转换为java查询的最佳方法吗
# 1 楼答案
首先,您应该使用的URL查询是
否则
account_id
和invalid
就没有约束了然后,这个新的URL查询在Java中的确切翻译是
注:
queryStringQuery
而不是{