2016-09-19 186 views
0

我的搜索查詢是這樣的:如何在彈性數據彈性搜索中構建嵌套對象的搜索查詢?

curl -XGET "http://localhost:9200/imagesearchservice/images /_search?pretty=true" -d ' 
{ 
    "query": { 
    "bool": { 
     "must": [ 
      { 
       "nested": { 
        "path":"tags", 
        "query": { 
        "bool": { 
         "must": [ 
         {"match_all" : {} } 
         ], 
       "filter" : { 
          "terms" : { 
          "tags.tagName" : ["star"] 
          } 
         } 
        } 
        } 
       } 
      } 
    ] 
     } 
    } 
}' 

我試着做以下,但它沒有工作。

SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) 
       .withFilter(boolQuery().must(termsQuery("tags.tagName", tagNames))) 
       .build(); 

我正在使用Elastic Search v2.x。有人可以告訴我如何使用nativesearchquerybuilder構建上述搜索查詢嗎?

回答

1

我會做這樣的事情:

BoolQueryBuilder booleanQuery = new BoolQueryBuilder(); 
    booleanQuery.must(termsQuery("tags.tagName", tagNames)); 
    myElasticSearchRepository.search(booleanQuery) 

哪裏myElasticSearchRepository是延伸ElasticsearchRepository

的interfce