我想实现传入多个ids的查询请帮我修改代码
时间: 2024-03-27 13:35:11 浏览: 20
好的,你可以使用 `termsQuery` 方法来实现多个 id 的查询。具体修改如下:
```java
public List<lsjzsearch> searchIds(List<String> ids) {
/**
* @des 按多个id查询
* @Author xiaomin
* @Date 2023/5/30
* @Param [java.util.List<java.lang.String>]
* @Return java.util.List<org.example.entity.esEntity.lsjzsearch>
*/
// 查询
NativeSearchQuery query = new NativeSearchQueryBuilder()
.withQuery(QueryBuilders.termsQuery("id", ids))
.build();
SearchHits<lsjzsearch> searchHits = elasticsearchTemplate.search(query, lsjzsearch.class);
List<lsjzsearch> lsjzsearchList = searchHits.get().map(SearchHit::getContent).collect(Collectors.toList());
for (int i = 0; i < lsjzsearchList.size(); i++) {
lsjzsearchList.get(i).setScore(searchHits.getSearchHit(i).getScore()); //设置score属性的值
}
return lsjzsearchList;
}
```
这里使用了 `termsQuery` 方法,将多个 id 值传入。注意,`termsQuery` 方法的第一个参数是字段名,第二个参数是一个 List,包含了要匹配的多个值。