我正在使用此代码:
client.prepareSearch("test").addSort("dateUpdated", SortOrder.DESC)
.setSearchType(SearchType.DFS_QUERY_AND_FETCH)
.setIndices("reach")
.setTypes(types)
.setQuery(QueryBuilders.queryString(queryString))
.setFrom(0).setSize(2).setExplain(true)
.execute()
.actionGet()
客户端是远程客户端。总共有5个结果,基于我的上述结果,我只希望有两个结果可以回来。然而所有5人都回来了。如果我将大小设置为0,则没有任何回复(正如预期的那样)我缺少什么?我觉得我误解了一些关于起源/大小的东西。我的查询字符串只是“name:*”。非常感谢任何帮助!
答案 0 :(得分:9)
这是关于如何在不打扰分片数量的情况下设置大小的另一种解释。 http://elasticsearch-users.115913.n3.nabble.com/About-setsize-Java-API-td3216996.html
“query and fetch”是最快的搜索类型,但是遇到了每个分片获取指定大小的问题。使用“query then fetch”将解决问题。当没有指定时,它也是默认搜索类型。
有关搜索类型的更多信息: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-search-type.html