在弹性搜索中基于Id的查询查询时,无法从流错误反序列化异常响应。但是当我执行以下查询时。
client.prepareSearch(index)
.setSearchType(SearchType.QUERY_AND_FETCH)
.addField("aa.ct")
.addField("aa.bb")
.addField("a.aa") .
它有效,但我需要根据文档的ID进行搜索。
SearchResponse response = client.prepareSearch("dbIndex")
.setSearchType(SearchType.QUERY_AND_FETCH)
.setQuery(QueryBuilders.termQuery("_id","532adfdxfe8343000458ffd3"))
.setExplain(true)
.setQuery().setExplain(true)
.execute()
.actionGet();
答案 0 :(得分:0)
使用prepareGet
并设置ID。
GetResponse response = esClient.prepareGet()
.setIndex("dbIndex")
.setType("yourType")// set the index type as well
.setId("532adfdxfe8343000458ffd3")
.setFields(new String[]{"aa.ct", "aa.bb", "a.aa"})
.execute()
.actionGet();
答案 1 :(得分:0)
您可以使用get方法搜索_id。 (它不是真正的搜索,而是一种那种) 它返回记录,如果它确实存在,否则在json响应中,它会说,存在:false。