我有以下POJO:
@Data
@Document(indexName = "person")
public class Person {
@Id
@JsonIgnore
private String id;
private String mainId;
private String name;
}
如何从给定值列表的mainId字段进行搜索(例如:[“1234”,“567”,“8910”]?
到目前为止,我都是用这个来编写代码的。但是当我试图传递一个包含太多值的列表时,它给了我一个异常:
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
for (String mainId : mainIds) {
queryBuilder.should(QueryBuilders.matchQuery("mainId", mainId ));
}
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(queryBuilder).build();
SearchHits<T> searchHits = this.operations.search(searchQuery, this.entityClass,
this.operations.getIndexCoordinatesFor(this.entityClass));
1条答案
按热度按时间gcuhipw91#
您可以使用词汇查询,透过传递一个数组或一组String,来比对具有多个值的字段。
请注意
termsQuery
中的“s”。