目前我查询ES的单个键值对,如下所示:
String query_key = "abc";
String query_val = "def";
searchRequestBuilder.setQuery(QueryBuilders.matchQuery(query_key, query_val)).execute().actionGet();
Run Code Online (Sandbox Code Playgroud)
现在,我没有单个键值对,而是具有以下键值对映射: Map<String,String> query_list
我如何为此修改相同的内容?
Aru*_*ash 20
您可以使用MuliMatchQuery或Boolean Query来满足您的要求.
例如: -
BoolQueryBuilder boolQuery = new BoolQueryBuilder();
for (Map.Entry<String, String> entry : fields.entrySet()){
boolQuery.must(QueryBuilders.matchQuery(entry.getKey(), entry.getValue()));
}
Run Code Online (Sandbox Code Playgroud)
boolQuery在您searchRequest阅读elasticsearch boolQueries中设置此项并使用符合您要求的项目.
以上示例将AND在提供的字段中执行操作.的field1和field2必须匹配.如果你想执行OR操作,那么你应该使用sould查询你有一个选项来设置minimum_should_match你可以指定应该匹配的最小字段.
| 归档时间: |
|
| 查看次数: |
10862 次 |
| 最近记录: |