现在我想在字段中搜索 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:test
或 http://localhost:9200/test/series/_search?q=_id:99
应该可以解决问题。
关于java - elasticsearch中的id搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17701019/