查询以获取结果以获取弹性搜索中的ID列表

时间:2019-12-10 16:33:12

标签: java elasticsearch

我有一个查询,仅获取一个用户的lastSeenTime 但是我需要的是按弹性搜索中的用户列表按ID的最后一次显示获取ID的地图 有人可以帮我转换此查询以找到用户ssoId列表的最后一次看到吗?

hexdump: bad conversion character %%

实际上我想要这样的东西

%

1 个答案:

答案 0 :(得分:0)

您可以在弹性查询中使用访存仅返回所选字段:

.setFetchSource(new String[]{"field1","field2}, null)

要传递多个ID,您可以将ID的 Array 传递给idsQuery()

因此,在您的情况下,它将变为:

SearchResponse response = transportClient
        //.prepareSearch(ChatSettings.ELASTIC_LAST_SEEN_INDEX_NAME) // you might need to pass the columns here
        .setTypes(ChatSettings.ELASTIC_DB_NAME)
        .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
        .setFetchSource(new String[]{"id","lastSeenTime"}, null) // or you can pass the columns here
        .setQuery(QueryBuilders.idsQuery().addIds(ssoIds)) // where ssoIds is a array of Ids        
        .setFrom(0).setSize(1).setExplain(true)
        .get();

发布此代码,其余代码将按原样工作。

相关问题