有没有办法计算ElasticSearch或Tire中索引的所有元素?

Jer*_*ith 7 ruby elasticsearch

拥有一些元素而不必进行搜索就好了

Obj.search("id:*").count
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Dav*_*ann 10

在ElasticSearch中,您可以使用count API计算所有元素

curl -XGET http://localhost:9200/index/_count
Run Code Online (Sandbox Code Playgroud)

请参阅其网站上的Count API文档.


lum*_*idu 9

刚刚从卡尔米得到了一个暗示.count API现已上市.

您可以执行以下操作:

s = Tire.search 'articles-test', :search_type => 'count' do
  query { term :tags, 'ruby' }
end
Run Code Online (Sandbox Code Playgroud)

只有这样才s.results.total定义.

请看:https://github.com/karmi/tire/blob/master/test/integration/count_test.rb


kar*_*rmi 8

首先,您应该使用match_all查询:MyModel.search( { query { all } }).results.total.(在Lucene中,不惜一切代价避免使用通配符.)

目前,Tire没有公开"计数"API.那会改变.