我在MongoDB中有文本索引,并希望使用text命令在我的集合中进行搜索。在Mongoid中找不到此功能。
发布于 2013-04-17 20:14:09
我也是一个mongoid用户,所以我一直在努力寻找解决方案。除了where查询之外,我还没有在mongoid中找到任何与搜索文本相关的东西。经过很少的调查,我发现了mongoid_search gem,这对搜索文本可能很有用。
它有一个限制,在自述文件的第一行中写道:“如果你的可搜索模型很大(例如1.000.000+记录),solr或sphinx可能更适合你。”如果有的话,您需要配置solr或elasticsearch以获得更好的性能。如果你打算在heroku上部署,那么也请考虑到这一点。
也许这会帮助你实现你的目标。
发布于 2013-10-23 15:05:39
最近遇到了类似的情况。您可以通过以下方式在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'来搜索东西。
https://stackoverflow.com/questions/15876472
复制相似问题