java用es查询逗号分隔的字段
时间: 2024-09-20 15:10:04 浏览: 75
springboot-bboss-elasticsearch
在Java中,如果需要使用Elasticsearch (ES) 进行查询,特别是处理包含逗号分隔值的字段,通常你需要将这样的字符串拆分成多个单独的搜索条件。Elasticsearch的Query DSL(Domain Specific Language)允许你创建复杂的查询结构。
例如,如果你有一个名为`tags`的字段,它存储的是以逗号分隔的标签列表,你可以这样做:
```java
QueryBuilder query = QueryBuilders.boolQuery();
String[] tagsList = "tag1, tag2, tag3".split(",");
for (String tag : tagsList) {
query.should(QueryBuilders.matchQuery("tags", tag));
}
SearchResponse response = client.search(indexName, query);
```
这里,我们使用了`boolQuery()`来组合多个查询条件,然后通过`should()`方法添加对每个标签的匹配查询(`matchQuery()`)。这样,文档只要包含任何一个列出的标签,就会被检索出来。
阅读全文