我在 MongoDB 中有文本索引,并且想使用文本命令在我的集合中进行搜索。在 Mongoid 中找不到此功能。
问问题
1000 次
2 回答
2
我试图找到解决方案,因为我也是一个 mongoid 用户。除了 where 查询之外,我还没有找到任何与 mongoid 中的搜索文本相关的特定内容。经过一番调查,我发现了 mongoid_search gem,它可能对搜索文本很有用。
它有一个限制,写在自述文件的第一行是“如果您的可搜索模型很大(即 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 回答