0

Ma requête de recherche ressemble à ceci:Comment créer une requête de recherche d'objets imbriqués dans la recherche élastique printanière?

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"] 
          } 
         } 
        } 
        } 
       } 
      } 
    ] 
     } 
    } 
}' 

J'ai essayé de faire le suivant, mais cela n'a pas fonctionné.

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

J'utilise Elastic Search v2.x. Quelqu'un peut-il s'il vous plaît me dire comment créer une requête de recherche pour ce qui précède en utilisant nativesearchquerybuilder?

Répondre

1

je ferais quelque chose comme ceci:

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

Où myElasticSearchRepository est un interfce qui s'étend ElasticsearchRepository