java - 如何使用 Elasticsearch Java Api 使用 query_string 创建查询

标签 java jakarta-ee elasticsearch

目前我的查询请求正文看起来像

{
  "query": {
    "query_string": {
      "default_field": "file",
      "query": "Email OR @gmail.com @yahoo.com"
    }
  },
  "highlight": {
    "fields": {
      "file": {

      }
    }
  }
}

我的java代码看起来像

String queryString = "{" 
                + "\"query_string\": " 
                    + "{"
                        + "\"default_field\":"
                    + " \"file\","
                            + " \"query\": \"Email OR @gmail.com @yahoo.com\""
                            + "}"
                            + "}";

通过以下 API 调用

SearchRequestBuilder searchRequestBuilder = client.prepareSearch()
                .setIndices("resume")
     .setTypes("docs").setQuery(queryString).addHighlightedField("file");

SearchResponse response = searchRequestBuilder.execute().actionGet();

对于“queryString”部分,我更喜欢基于 api 的方法。我找不到任何处理请求的“query_string”部分的 api。有用于 match_all、match、term 等等的 API,但没有用于 query_string

非常感谢任何帮助

最佳答案

QueryBuilders 是用于创建任何查询(包括 query_string)的工厂。来自 documentation :

import static org.elasticsearch.index.query.QueryBuilders.*;
QueryBuilder qb = queryStringQuery("+kimchy -elasticsearch");

您的查询将按如下方式构建:

QueryBuilder qb = queryStringQuery("Email OR @gmail.com @yahoo.com").defaultField("file");

完整的例子是:

SearchRequestBuilder searchRequestBuilder = client.prepareSearch()
            .setIndices("resume")
 .setTypes("docs").setQuery(qb).addHighlightedField("file");

SearchResponse response = searchRequestBuilder.execute().actionGet();

关于java - 如何使用 Elasticsearch Java Api 使用 query_string 创建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30827027/

相关文章:

Java:向 ChangeEvent 添加文本字段

java - 使用 Javascript 提交 Spring 表单

ruby-on-rails - 如何在错误 rails "warning: 299 Elasticsearch built-in security features are not enabled. Without authentication, your cluster could..."中修复此问题

elasticsearch - 在elasticsearch中查找和替换所有文档

eclipse - 打开 weblogic 快速交换到 Weblogic 10.3.0.0 时出现问题

elasticsearch - Elasticsearch 数组中的重复值和查询评分

java - 痛饮 : How to rename generated Java code according to a regex?

Java - 根据后缀从列表创建子列表

java - EJB3拦截器

java - 如何在 Utility Project 中包含第三方库?