[Elasticsearch]Elasticsearch(ES)如何查询并返回索引的全部数据记录呢?
6.16K 次浏览
1 个回答
-
注意:以下的DSL语句是在Elasticsearch 7.14.0 版本中测试和运行的。
在Elasticsearch中,可以使用DSL的
match_all
来查询指定索引的全部文档,语句如下:以上语句会检索
my-test-index
索引中的全部文档,但由于Elasticsearch默认返回的size
为10
,所以即使有几千条文档,但也只能返回满足条件的前10个文档。如果需要返回更多文档,则需设置DSL查询的
from
,size
,sort
这几个参数,如下:其中的
from
参数表示检索文档的偏移量,size
表示要返回的文档个数,sort
则是用于文档排序的参数。由于Elasticsearch的索引配置中最大结果窗口
max_result_window
默认值为10000
,也就是from+size
的最大值为10000
。所以,如果你的文档超过了10000,此查询语句也只能最多返回前10000个文档记录。如果要返回超过10000条文档,可以调大
max_result_window
的值,但这会消耗更多的服务器资源,降低Elasticsearch服务的性能。此外,你还可以借助
Scroll
或者Search After
来分页获取索引文档。