弹性search大小无限

对于弹性search来说是新的。 我面临一个问题,写一个search查询返回我的集合中所有匹配的logging。 以下是我对查询logging的查询

{ "size":"total no of record" // Here i need to get total no of records in collection "query": { "match": { "first_name": "vineeth" } } } 

通过运行这个查询,我只能得到最多10条logging,确保我的集合中有超过10条匹配的logging。 我search了很多,最终在查询中获得了大小参数。 但在我的情况下,我不知道logging的总数。 我想给一个无限数量的大小variables不是一个好的做法,所以如何pipe理这种情况请帮我解决这个问题,谢谢

显示所有结果并不常见,而是使用fromsize来指定要提取的结果范围。 所以你的查询(获取前10个结果)应该看起来像这样:

 { "from": 0, "size": 10, "query": { "match": { "first_name": "vineeth" } } } 

这应该比将size设置为一个可笑的大的值更好。 要检查有多less文档与您的查询相匹配,您可以从响应中获得hits.total (命中总数)。

要获取所有的logging,你也可以使用滚动的概念..这就像光标在数据库的..
如果你使用滚动,你可以批量获取文档。这将减less高CPU使用率和内存使用情况。

有关更多信息,请参阅

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-scroll.html

为了获得所有logging,每个文档,你应该使用滚动。 这里是文档: http : //www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-scroll.html

但是,这个想法是指定你的search,并指出你想滚动它:

 curl -XGET 'localhost:9200/twitter/tweet/_search?scroll=1m' -d ' { "query": { "match" : { "title" : "elasticsearch" } } }' 

在滚动参数中指定您希望search结果可用的时间。

然后你可以通过返回的scroll_id和api来获取它们。