我在MongoDB中有文本索引,並且想要使用text命令來搜索我的集合。在Mongoid中找不到這個功能。如何使用Mongoid執行runCommand?
3
A
回答
2
我試圖找到解決方案,因爲我也是一個mongoid用戶。除了查詢之外,我還沒有發現任何與mongoid中的搜索文本相關的具體內容。經過一番調查後,我發現mongoid_search寶石可用於搜索文本。
它有一個限制,寫在自述的第一行是「如果您的可搜索模型很大(即1.000.000+記錄),solr或sphinx可能更適合您。」如果您需要配置solr或elasticsearch以獲得更好的性能。如果你打算在heroku上部署,那麼請考慮這一點。
可能這會幫助你實現你的目標。
1
最近碰到類似的情況。您可以通過以下方式運行Mongoid搜索命令:
session = Mongoid.session('default')
session.command({"text" => 'my_collection', 'search' => 'whatever'})
使一個不錯的mixin:
# 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'
這樣尋找的東西。
+0
這看起來像是正確的答案。我會調整Mixin以使用Mongoid的mongo_session文檔類方法。 – Udi 2013-12-09 21:04:15
相關問題
- 1. 如何使用Mongoose執行runCommand?
- 2. 使用mongomapper執行服務器runCommand geoNear
- 3. 如何使用Mongoid執行$ geoIntersects查詢?
- 4. 如何在MongoDB文檔中使用Mongoid執行此查詢
- 5. 如何使用mongoid和活動記錄來執行「rake db:migrate」?
- 6. 如何使用Mongoid執行批量更新而不先查找?
- 7. 如何使用mongoid
- 8. 如何(使用mongoid)
- 9. 使用MongoDB的runCommand方法
- 10. 如何使用MongoID validates_inclusion_of
- 11. 如何使用mongoID的
- 12. 如何使用Mongoid 3
- 13. WebDeploy 3.0 RunCommand通過WebDeploy代理執行得太快
- 14. 使用Mongoid在Rails中執行原子塊事務
- 15. 無法使用mongoid執行覆蓋(indexOnly)查詢
- 16. 如何runCommand geohaystack使用>< <= > =格式正確
- 17. 在Django中使用MongoDB runCommand MongoDb引擎
- 18. MSDeploy runCommand使用相對路徑
- 19. 如何執行使用Java
- 20. 如何使用Java執行
- 21. 如何防止mongoid在執行update_attributes()時保存默認值?
- 22. 如何執行獨特的嵌入式文件mongoid
- 23. mongodb gmongo runCommand
- 24. c#MongoDB RunCommand
- 25. mongoid範圍鏈上的執行方法
- 26. 執行兩個Mongoid「any_in」的或查詢
- 27. 如何使用mongoid存儲ID?
- 28. 如何在Rails上使用Mongoid?
- 29. 如何在Mongoid中使用namespaced集合?
- 30. 如何使用rspec測試Mongoid :: Observer
您是否在尋找[this](https://groups.google.com/d/msg/mongoid/hJRbaNMy6w4/PEolIR2SJ2oJ)? – MervS 2013-04-23 02:58:25