为什么Elastic Search java API忽略了我们的查询限制?

eri*_*ric 6 java elasticsearch

我正在使用此代码:

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()
Run Code Online (Sandbox Code Playgroud)

客户端是远程客户端.总共有5个结果,基于我的上述结果,我只希望有两个结果可以回来.然而所有5人都回来了.如果我将大小设置为0,则没有任何回复(正如预期的那样)我缺少什么?我觉得我误解了一些关于起源/大小的东西.我的查询字符串只是"name:*".任何帮助是极大的赞赏!

gra*_*ode 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