2011-11-01 9 views

答えて

6

まず、match_allクエリ:MyModel.search({ query { all } }).results.totalを使用してください。 (Luceneでは、すべてのコストでワイルドカードクエリを避けてください)。

現在、Tireは「カウント」APIを公開していません。それは変わるでしょう。

+0

カウントqはありませんか?タイヤで手に入るの? – Karussell

9

ElasticSearchでは、カウントAPI

curl -XGET http://localhost:9200/index/_count 

自分のサイトにCount APIのドキュメントを参照してくださいを使用して、すべての要素を数えることができます。

9

ちょうどKarmiからのヒントを得ました。カウントAPIは現在利用可能です。

次の操作を行うことができます

s = Tire.search 'articles-test', :search_type => 'count' do 
    query { term :tags, 'ruby' } 
end 

だけにしてs.results.totalが定義されています。

こちらをご覧ください:https://github.com/karmi/tire/blob/master/test/integration/count_test.rb

0

を使用すると、インデックス内のドキュメントの数を取得したい場合は、あなたもちょうどこのように、index statsをチェックすることができ:

curl -XGET localhost:9200/_stats 

結果で削除したドキュメント/の数を取得しますdocs(まだマージされていないドキュメント)。コンソールから

0

Model.search("*:*").results.total 

多分誰かを助ける;)

1

あなたにもelasticsearch-model宝石でこれを行うことができます。

Article.search("cats", search_type: 'count').results.total 
# => 2026 

そして、あなたがフェッチ引き起こすことはありません。 ..

Article.search("cats", search_type: 'count').map {|r| r.title} 
# => [] 
関連する問題