[英]Building a bool query with Spring Data Elasticsearch
我正在嘗試使用此結構使 bool 必須匹配 java 中的查詢
GET offers/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"offerLine": "Technology"
}
}
]
}
}
}
我已經試過了,我得到了一個 null 值:
private NativeQueryBuilder prepareElasticQuery(OfferRequest request){
BoolQuery.Builder bqb = QueryBuilders.bool();
bqb.must(m->m.match(ma->ma.field("offerLine").query(request.getOfferLine())));
NativeQueryBuilder nqb= new NativeQueryBuilder().withQuery(bqb.build()._toQuery());
return nqb;
}
bool 查詢得到這個值:
BoolQuery: {"must":[{"match":{"offerLine":{"query":"Technology"}}}]}
而且我似乎找不到 value() 方法的替代方法,因為它已被棄用。 關於如何正確構建它的任何線索?
編輯:這是正確的方法。 我的問題是進一步處理結果。
嘗試這樣做:
public SearchRequest prepareElasticQuery(OfferRequest request) {
SearchRequest searchRequest = new SearchRequest("offers");
searchRequest.source(new SearchSourceBuilder()
.query(
QueryBuilders.boolQuery()
.must(
QueryBuilders.matchQuery("offerLine", request.getOfferLine()
)
)
)
);
return searchRequest;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.