MongoDB にテキスト インデックスがあり、テキストコマンドを使用してコレクションを検索したいと考えています。この機能は Mongoid にはありません。
質問する
1000 次
2 に答える
2
私もモンゴイドユーザーであるため、解決策を見つけようとしました。whereクエリ以外のmongoidの検索テキストに関連する特定のものは見つかりませんでした。少し調査した結果、検索テキストに役立つ可能性のあるmongoid_search gem を見つけました。
readme の最初の行に書かれている 1 つの制限があります。「検索可能なモデルが大きい場合 (つまり、1.000.000 以上のレコード)、solr または sphinx の方が適している可能性があります。」その場合は、パフォーマンスを向上させるために solr または elasticsearch を構成する必要があります。heroku にデプロイする場合は、その点も考慮して開発してください。
これはあなたの目標を達成するのに役立つかもしれません。
于 2013-04-17T12:14:09.057 に答える
1
最近、同様の状況に遭遇しました。次の方法で、Mongoid で検索コマンドを実行できます。
session = Mongoid.session('default')
session.command({"text" => 'my_collection', 'search' => 'whatever'})
素敵なミックスインになります:
# mixins/search.rb
module Mixins
module Search
extend ActiveSupport::Concern
module ClassMethods
def search(query)
session = Mongoid.session('default')
session.command({"text" => collection.name, 'search' => query})
end
end
end
end
include Mixins::Search
そうすれば、モデルにだけ入ってModel.search 'whatever'
、ものを検索するために使用できます。
于 2013-10-23T07:05:39.047 に答える