我是ElasticSearch的新手,我的情况是这样的,其中有一个包含约100个文档的索引。我正在使用以下代码段来检索这些代码
ListenableActionFuture f = esClient.prepareSearch(index) .setTypes(类型) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setQuery(multiMatchQuery) .execute();
我想一次获取所有文档而不使用滚动条。我知道索引不会有那么多记录。如果我指定
ListenableActionFuture f = esClient.prepareSearch(index) .setTypes(类型) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setQuery(multiMatchQuery) .setSize(100) 。执行(); 行为不一致。每次获取的记录数量各不相同,有时是34个文档,有时是21个,等等。
但是,如果我不指定大小,则总是获取10。我正在使用Elasticsearch 5.6.3。
我尝试了几种解决方案,例如使用以下无搜索类型的方法,但是没有运气
ListenableActionFuture f = esClient.prepareSearch(index) .setTypes(类型) .setQuery(multiMatchQuery) .setSize(hitcount) .execute();
我需要查询以一次性获取所有记录。当我尝试打印搜索响应时,我发现总匹配数如下所示
hits”:{ “总计”:25, “ max_score”:0.18232156, “点击数”:[ { .... } }} 应该是100。同样,如果我执行相同的代码,总的点击率也会有所不同。
我的索引有5个分片
我想知道是什么使我的总点击次数经常不一致。