如何基于documentid查询elasticsearch

时间:2014-07-31 07:29:20

标签: elasticsearch

在弹性搜索中基于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();

2 个答案:

答案 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。