【问题标题】:How to do fulltext search on multiple collections at same time in MongoDB [closed]如何在MongoDB中同时对多个集合进行全文搜索[关闭]
【发布时间】:2015-11-29 02:45:12
【问题描述】:

现在我们正在使用 MongoDB

让我们支持 1 亿用户配置文件。在用户个人资料中,我们有

a) 用户名 b) 名字 c) 姓氏 d) 电话号码 e) 地址:{城市、州、国家等} f) 描述 g)喜欢(数组列表) h) 性别等

另一个作业集合,作业字段是-:

a) 职位名称 b) 工作描述 c) minPackage d) 最大包装 e) 工作地点等

类似地,我们有任务、事件等的集合

对于 Example Jobs 的不同集合有不同的搜索有它自己的搜索视图和用户设置搜索过滤器,我们很容易对它们进行查询。

但是现在在首页有一个通用的搜索框,我们必须对每个集合进行全文搜索Ex如果用户键入任何内容而不是从每个集合中进行全文搜索(用户,工作,任务等)。

我的问题是 MongoDB 就是为此目的,或者我们必须使用 Elastic Search 或任何其他技术

【问题讨论】:

  • MongoDB 上的文本搜索仅在单个集合中,因此您必须合并(因此引入非规范化)其中的相关数据。另一方面,即使在第三个引擎(外部文本索引服务)上复制数据也是一种非规范化。历史上有点需要将 MongoDB 与 Solr 或 ElasticSearch 配对,因为最初不存在文本索引,但现在它变成了一个基于意见的 A-or-B 问题,因此无法客观地回答:有很多根据您的具体情况采用这两种解决方案的充分理由。

标签: mongodb search elasticsearch full-text-search


【解决方案1】:

我之前已经成功地将 MongoDB 和 Solr 配对。有一些工具会尝试通过遵循 oplog 来保持 Solr 和 MongoDB 同步,但我没有使用它们。相反,我的应用程序代码确保在所需文档发生更改时将其发送到 Solr。

【讨论】:

  • 第二个不是答案的答案(另一个已被删除)。这是一条评论,仅此而已(甚至足够短以适应)。这个问题显然是“题外话”,询问您对这里“最好”的看法。最好不要管它,让最终的关闭为 OP 解决这个问题。或者发表评论。
  • 我不同意这显然是题外话——这也可能是一个非英语母语的人在努力提出问题。它确实看起来像一个“什么是最好的”问题,但很可能是一个“我如何在 MongoDB 中进行全文搜索”的问题。为什么不要求 OP 澄清或重新制定?
  • 弹性搜索是解决这个问题的更好选择?
  • @Martin:为什么不要求他们重新表述并然后回答问题?这就是我们搁置问题的原因,以确保它们清晰且适合该网站。如果 OP 编辑​​,它可以重新打开。如果这真的是一个我如何进行全文搜索,这对我来说听起来像是一个过于宽泛的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-02
  • 1970-01-01
  • 2021-04-17
  • 2014-07-31
  • 1970-01-01
  • 2014-03-19
  • 1970-01-01
相关资源
最近更新 更多