Nó sẽ được tốt đẹp để có một số yếu tố mà không cần phải thực hiện tìm kiếm nhưCó cách nào để đếm tất cả các phần tử của chỉ mục trong ElasticSearch hoặc Tire không?
Obj.search("id:*").count
Đây có phải là có thể?
Nó sẽ được tốt đẹp để có một số yếu tố mà không cần phải thực hiện tìm kiếm nhưCó cách nào để đếm tất cả các phần tử của chỉ mục trong ElasticSearch hoặc Tire không?
Obj.search("id:*").count
Đây có phải là có thể?
Trước tiên, bạn nên sử dụng truy vấn match_all
: MyModel.search({ query { all } }).results.total
. (Trong Lucene, tránh các truy vấn ký tự đại diện bằng mọi giá.)
Hiện tại, Lốp không để lộ API "đếm". Điều đó sẽ thay đổi.
Trong ElasticSearch bạn có thể đếm tất cả các yếu tố sử dụng API đếm
curl -XGET http://localhost:9200/index/_count
Xem Count API tài liệu trên trang web của họ.
Chỉ cần có gợi ý từ Karmi. API đếm hiện khả dụng.
Bạn có thể làm như sau:
s = Tire.search 'articles-test', :search_type => 'count' do
query { term :tags, 'ruby' }
end
Chỉ khi đó s.results.total
được định nghĩa.
Xem ở đây: https://github.com/karmi/tire/blob/master/test/integration/count_test.rb
Nếu bạn muốn nhận được số tài liệu bên trong chỉ mục, bạn có thể cũng chỉ cần kiểm tra index stats, như thế này:
curl -XGET localhost:9200/_stats
Trong kết quả bạn sẽ nhận được số docs/xóa tài liệu (tài liệu chưa được hợp nhất).
Từ giao diện điều khiển:
Model.search("*:*").results.total
có thể giúp ai đó;)
Bạn có thể làm điều này trong elasticsearch-model
đá quý cũng như:
Article.search("cats", search_type: 'count').results.total
# => 2026
Và bạn sẽ không gây ra mang lại. ..
Article.search("cats", search_type: 'count').map {|r| r.title}
# => []
Không có số lượng q uery có sẵn trong lốp? – Karussell