- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我使用带有 mongomapper 的 mongodb 来存储我所有的产品。每个产品属于具有多个级别的多个类别,即类别、子类别等。每个产品都有许多搜索字段,这些字段是产品中嵌入的文档。
一切正常,我现在想将搜索添加到应用程序。
搜索系统需要文本搜索:多重、动态、分面搜索,包括最小/最大范围搜索。
我一直在研究 sunspot gem,但很难在开发环境中设置它,更不用说尝试在生产环境中运行它了!我也看过 sphinx 。
但我想知道仅使用 mongomapper/mongodb 是否足够快并且是最好的方法,因为它是一个相当复杂的搜索系统?
如有任何帮助/建议/经验/教程和示例,我们将不胜感激。
非常感谢,
瑞克
最佳答案
我参与了一个由 Sphinx 驱动的非常大的搜索,我认为它糟糕。如果您想要通过非常简单的全文搜索进行任何操作,则很难配置。另一方面,Solr\Lucene 非常灵活,而且设置和运行起来非常容易。
我并没有将 Solr 与 MongoDB 结合使用来为全文搜索提供所有额外的好处,例如方面等。根据您配置 Solr 的方式,您甚至可能不需要访问 MongoDB 来获取数据。或者,您可以告诉 Solr 索引字段,但不存储它们,而您只存储与 MongoDB 中的数据相对应的 ObjectId。
如果您的搜索确实是一个复杂的搜索系统,我强烈建议您不要使用 MongoDB 进行搜索并使用 Solr。一个重要原因是 MongoDb 没有全文功能——相反,它有正则表达式匹配。 Regex 匹配非常好,但只会在某些情况下使用索引。
关于mongodb - 使用 mongomapper、sunspot/solr 或 sphinx 高级搜索 mongodb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5412737/
如果我有: class Post include MongoMapper::Document has_many :comments end 如果我这样做: class Comment in
这是我的 irb session : irb(main):001:0> class User irb(main):002:1> include MongoMapper::Document irb(ma
我有一个带有嵌入文档的 mongomapper 文档,我想复制它。 本质上,我想做的是这样的: customer = Customer.find(params[:id]) new_customer =
我试图通过将类继承与 MongoMapper 一起使用来获得更好、更有条理的结果,但遇到了一些麻烦。 class Item include MongoMapper::Document key
有没有办法保存 MongoMapper 模型实例,以便不执行验证但调用回调?这类似于 ActiveRecord 的 whatever.save(false) 我在网上找到了一段代码,可以用来绕过验证和
在 MongoMapper 中,类可以从父类(super class)继承键和方法。在这里,我编写了包含整数键“baz”的代码,以及将其实例的 baz 值设置为连续计数的朴素排序方法。 require
我已经使用 MongoMapper 几个星期了,并且喜欢它的很多功能。最吸引人的功能之一是能够定义自定义 key 类型和验证方法(请参阅本页上的“自定义类型”:http://mongomapper.c
假设我们有两个模型,Task 和 User。所以一个用户可以有很多任务,任务也应该可以有很多用户。但是,任务还应该有一个独特的创建者,他也是用户。 例子: 这个上下文中的任务是这样的:任务ID、任务创
我有一个带有链接数组的 ruby 类。现在我可以保存一个 Paper 对象,即使该数组包含不是有效 url 的链接。我有一个遍历数组并验证 url 并在 url 无效时返回 false 的方法。但
我需要编写一个查询来查找在指定日期创建的所有文档。 假设日期是今天。 我试过了: Document.all(:created_at => Date.parse(Time.now.strftime('%
有没有人有很好的 MongoMapper 文档资源?我一直在阅读 mongoDB 文档,但其中很多都没有转换为 ruby/mm。我一直在试图弄清楚如何做一个 SELECT FROM WHERE E
我怎样才能让一个 mongo 模型进入一个数据库,而另一个使用另一个数据库? 我已发送此链接 https://github.com/jnunemaker/mongomapper/blob/master
我有一个 Rails 应用程序,当前使用 activerecord 来存储和查询产品。 每个产品都有一个类别和子类别,每个子类别由我可以在应用程序中创建的多个字段定义。由此,当用户想要输入特定产品时,
我不能使用 Array#shuffle,因为我没有获取所有文档(我最多只获取 20 个文档)。我如何使用 MongoMapper(即在 MySQL 中使用 ORDER BY RAND())从 Mong
如何在运行时改变当前的MongoMapper数据库? 此外,有没有一种方法可以将模型映射到名称是动态计算的数据库?例如: class MyEntity include MongoMapper:
我正在将 MongoMapper 用于我们的主数据存储,我想针对我们副本集中的从节点而不是主节点运行报告作业。不幸的是,我们的大部分后台作业都是读/写的,需要与主作业相对应。 有什么方法可以做如下的事
MongoMapper with Identity Map 是否支持级联删除?它似乎并不是真的,但我可能在文档中的某处遗漏了一些东西。请考虑以下事项: class User include Mon
尝试使用名为“buy-only”的键为文档设置 MongoMapper 对象。当我尝试启动应用程序时,我得到了这个 (eval):1: syntax error, unexpected '-', ex
我正在寻找使用 MongoMapper 的预加载关联文档。假设我有一位作者对帖子有 :has_one 条件,我应该能够使用单个查询加载作者 Post.find(:all, :include => :a
在 MongoMapper 文档中我找不到任何实际编辑文档的方法。我在别处也找不到任何东西。我能找到的唯一方法是这种方法: class User include MongoMapper::Docu
我是一名优秀的程序员,十分优秀!