2016-09-19 180 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