Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Elasticsearch'中编写查询;s的Java客户端_Java_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

在Elasticsearch'中编写查询;s的Java客户端

在Elasticsearch'中编写查询;s的Java客户端,java,elasticsearch,Java,elasticsearch,我使用了弹性搜索java客户端, 我正在实现一个搜索应用程序。 (索引已经建立) 我想重现弹性搜索java客户端,如下查询 但是,它无法复制 如果您熟悉java客户端, 我要你告诉我 我要执行的查询(示例字段有java和php) 在java客户机上组装查询 ↑ “builder”变量的输出内容 输出时,match中包含额外的属性。 此外,我还不知道如何匹配多个单词 有人,请把你的智慧借给我 环境 语言:Java8 框架:Spring Elasticsearch客户端(jar)版本 *Org.e

我使用了弹性搜索java客户端, 我正在实现一个搜索应用程序。 (索引已经建立)

我想重现弹性搜索java客户端,如下查询

但是,它无法复制

如果您熟悉java客户端, 我要你告诉我

我要执行的查询(示例字段有java和php) 在java客户机上组装查询 ↑ “builder”变量的输出内容 输出时,match中包含额外的属性。 此外,我还不知道如何匹配多个单词

有人,请把你的智慧借给我

环境
  • 语言:Java8
  • 框架:Spring
  • Elasticsearch客户端(jar)版本
    *Org.elasticsearch:5.1.1
    *Org.elasticsearch.client:5.1.1
  • Elasticsearch版本:5.3.1

假设我有以下映射:

{
    "articles": {
        "mappings": {
            "article": {
                "properties": {
                    "sample": {
                        "type": "text"
                    }
                }
            }
        }
    }
}
我索引了以下三份文件:

{ "sample" : "java php" },
{ "sample" : "java" },
{ "sample" : "php" }
您提供的es查询提供了以下结果:

{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
    },
    "hits": {
        "total": 1,
        "max_score": 0.51623213,
        "hits": [
            {
                "_index": "articles",
                "_type": "article",
                "_id": "AV0rSbyjpRVEWsG0iTxj",
                "_score": 0.51623213,
                "_source": {
                    "sample": "java php"
                }
            }
        ]
    }
}
为了获得与Java API相同的结果,我使用:

BoolQueryBuilder boolQuery = QueryBuilders.boolQuery()
        .must(QueryBuilders.matchQuery ("sample", "java"))
        .must(QueryBuilders.matchQuery ("sample", "php"));
SearchRequestBuilder builder = client.prepareSearch()
        .setSize(50)
        .setQuery(boolQuery);

SearchResponse response;
try {
    response = builder.execute().get();

    for (SearchHit hit : response.getHits().getHits()) {
        LOG.info("Result: " + hit.getSourceAsString());
    }
} catch (InterruptedException | ExecutionException e) {
    // handle exception
    LOG.error("Exception while executing query {}", e);
}
结果:

Result: { "sample" : "java php" }

调试时在查询中看到的所有附加属性都只是默认值,Java API会显式设置它们。

谢谢!我非常感激。我能够成功地实施。
{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
    },
    "hits": {
        "total": 1,
        "max_score": 0.51623213,
        "hits": [
            {
                "_index": "articles",
                "_type": "article",
                "_id": "AV0rSbyjpRVEWsG0iTxj",
                "_score": 0.51623213,
                "_source": {
                    "sample": "java php"
                }
            }
        ]
    }
}
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery()
        .must(QueryBuilders.matchQuery ("sample", "java"))
        .must(QueryBuilders.matchQuery ("sample", "php"));
SearchRequestBuilder builder = client.prepareSearch()
        .setSize(50)
        .setQuery(boolQuery);

SearchResponse response;
try {
    response = builder.execute().get();

    for (SearchHit hit : response.getHits().getHits()) {
        LOG.info("Result: " + hit.getSourceAsString());
    }
} catch (InterruptedException | ExecutionException e) {
    // handle exception
    LOG.error("Exception while executing query {}", e);
}
Result: { "sample" : "java php" }