【发布时间】:2018-02-07 08:56:48
【问题描述】:
我有一个配置了 ElasticSearch 的 JHipster 项目,我想使用“请求正文搜索”而不是“URI 搜索”。
我只看到 REST 方法:“http://localhost:8080/api/_search/address/query=*”,但我想发送一个正文 json。
有没有办法做到这一点?
谢谢!
【问题讨论】:
我有一个配置了 ElasticSearch 的 JHipster 项目,我想使用“请求正文搜索”而不是“URI 搜索”。
我只看到 REST 方法:“http://localhost:8080/api/_search/address/query=*”,但我想发送一个正文 json。
有没有办法做到这一点?
谢谢!
【问题讨论】:
您可以使用您的 AddressSearchRepository,它扩展了 ElasticsearchRepository。 只需编写您的自定义查询,例如:
List<Address> findByStreetnameAndNumber(String streetname, int number);
它将自动转换为 Elasticsearch 查询。
如果您想使用 JSON 有效负载查询,请使用 @Query 注释并在那里编写您的 JSON 请求,如下所示:
public interface AddressSearchRepository extends ElasticsearchRepository<Address, String> {
@Query("{"bool" : {"must" : {"field" : {"name" : "?0"}}}}")
Page<Address> findByName(String name,Pageable pageable); }
【讨论】: