我正在使用此代码:
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:*”.任何帮助是极大的赞赏!
解决方法
这是关于如何设置大小而不打扰分片数量的另一种解释.
http://elasticsearch-users.115913.n3.nabble.com/About-setsize-Java-API-td3216996.html
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