java - elasticsearch中的id搜索

标签 java elasticsearch

现在我想在字段中搜索 id。

builder.startObject().startObject(TYPE_SERIES).startObject("properties");

    builder.startObject(ID)
            .field("type", "long")
            .field("store", "yes")
            .field("index", "analyzed")
            .field("analyzer", "test_analyzer")
            .endObject();

    builder.startObject(TITLE)
            .field("type", "string")
            .field("store", "yes")
            .field("index", "analyzed")
            .field("analyzer", "test_analyzer")
            .field("boost", "10")
            .endObject();

我试着像这样搜索 ID:

.setQuery(QueryBuilders.multiMatchQuery(query, 
                       ID, TITLE))

顺便说一句,我可以用 id 得到结果,但我不能用 title 搜索。 我只是用 id 搜索以获得结果。

所以我改成这样。 我使用了 MultiSearchResponse 以便尝试执行两个查询子项。

一个是

.setQuery(QueryBuilders.idsQuery(TYPE).ids(query))

另一个是

.setQuery(QueryBuilders.multiMatchQuery(query, 
                                            TITLE,DESCRIPTION))

不幸的是,我只得到带有标题或描述的结果。 如果我搜索 ID,我无法获得任何结果。

================ 我想这样执行

curl -XGET localhost:9200/test/series/99

我想获得带有 ID 的结果。不幸的是,我不太了解如何使用 JAVA API 编写此代码。

请告诉我。谢谢。

最佳答案

有一个可以搜索的 _id 字段。因此,curl http://localhost:9200/_search?q=_id:99+AND+_type:series+AND+_index:testhttp://localhost:9200/test/series/_search?q=_id:99 应该可以解决问题。

关于java - elasticsearch中的id搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17701019/

相关文章:

elasticsearch-7.9.0 无法从类型 [keyword] 更改为 [text]

java - 在ubuntu中执行Desktop.open()时打开Adobe Reader

java - 如何通过JavaScript向ActionBean发送数据?

java - XMLDecoder 抛出 ArrayIndexOutOfBoundsException

amazon-web-services - 如何从serverless.yaml配置更新AWS Elasticsearch访问策略?

elasticsearch - Elasticsearch-使用通配符搜索

search - Elasticsearch :使用通配符搜索整数

java - Hadoop 无法看到我的输入目录

java - 什么是 NullPointerException,我该如何解决?

elasticsearch - _ttl更新不适用于doc选项