簡體   English   中英

使用 Spring 數據構建布爾查詢 Elasticsearch

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM