gpt4 book ai didi

search - Elasticsearch按特定字段进行存储库搜索

转载 作者:行者123 更新时间:2023-12-03 01:01:07 24 4
gpt4 key购买 nike

除了查询外,我还需要查看实体“Terreno0101”的“entorno”字段。
我了解api的值(value)在于环境。

 @RequestMapping(value = "/_search/terreno-0101-s",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
@Transactional(readOnly = true)
public ResponseEntity<List<Terreno0101DTO>> searchTerreno0101S(@RequestParam Map<String,String> requestParams, Pageable pageable)
throws URISyntaxException {
String query = requestParams.get("query");
String entorno = requestParams.get("entorno");
log.debug("REST request to search for a page of Terreno0101S for query {}", query);
Page<Terreno0101> page = terreno0101Service.search(requestParams.get("query"), pageable);
HttpHeaders headers = PaginationUtil.generateSearchPaginationHttpHeaders(query, page, "/api/_search/terreno-0101-s");
return new ResponseEntity<>(terreno0101Mapper.terreno0101SToTerreno0101DTOs(page.getContent()), headers, HttpStatus.OK);
}

服务
 @Transactional(readOnly = true)
public Page<Terreno0101> search(String query, Pageable pageable) {
log.debug("Request to search for a page of Terreno0101S for query {}", query);
return terreno0101SearchRepository.search(queryStringQuery(query), pageable);
}

仓库
public interface Terreno0101SearchRepository extends ElasticsearchRepository<Terreno0101, Long> {

}

但不作为添加到我的服务和/或存储库中的原因,因为仅查找那些符合查询条件的内容,并且“entorno”是使我得到满足的字段。

最佳答案

您可以使用QueryBuilders API为此构建查询:

return terreno0101SearchRepository.search(QueryBuilders.boolQuery()
.must(queryStringQuery(query)).must(matchQuery("entorno", entorno)));

您还可以使用 @Query annotation.构造相同类型的查询

您甚至可以将过滤包含在queryStringQuery中:
"entorno:value searchString"

关于search - Elasticsearch按特定字段进行存储库搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37296775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com