我有一个查询,仅获取一个用户的lastSeenTime 但是我需要的是按弹性搜索中的用户列表按ID的最后一次显示获取ID的地图 有人可以帮我转换此查询以找到用户ssoId列表的最后一次看到吗?
hexdump: bad conversion character %%
实际上我想要这样的东西
%
答案 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();
发布此代码,其余代码将按原样工作。