java - 如何在 spring-data Elasticsearch 中构建嵌套对象的搜索查询?

标签 java elasticsearch spring-boot spring-data-elasticsearch

我的搜索查询如下所示:

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 为上述内容构建搜索查询吗?

最佳答案

我会做这样的事情:

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

其中 myElasticSearchRepository 是扩展 ElasticsearchRepository 的接口(interface)

关于java - 如何在 spring-data Elasticsearch 中构建嵌套对象的搜索查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39570488/

相关文章:

java - 仅通过在 java 中提供我的自定义注释来在任何方法执行之前和之后执行一些代码

通过子项或父项进行搜索时,Elasticsearch 会组合查询

spring-boot - Spring Boot 2.x Repackage用于与Gradle的集成测试

elasticsearch - Elasticsearch-查询以从展平结构中获取记录的最新版本

elasticsearch - Logstash拆分过滤器

java - Logback 和 Spring Boot 的新 springProperty 查找机制不起作用

java - 与 data-envers 的连接已关闭

Java 错误 : constant string expression required

java - 如何使用在多个实例上运行的 Spring MVC 管理登录凭据

java - 如何在不使用collect函数的情况下有效地将rdd转换为list