Meteor JS 中的搜索工具

Search tool in Meteor JS

在数据库和搜索方面,我是个新手,所以请多多包涵。我正在尝试在 Meteor 应用程序中实现搜索功能。 我检查了气氛并偶然发现了这 4 个选项。

  1. Mattodem 轻松搜索
  2. 搜索来源
  3. Atmosphere 上的 Elastic search 包(听说这是过时的)
  4. Atmosphere上的弹性大数据包

我的需求是简单的搜索,能够处理可能有数据嵌套的更大的数据集。例如一个任务,可能有评论或链接等。(全文和超过正则表达式查询会很好)

我读到为了便于搜索,即使使用某种形式的弹性或 Mongodb 应用程序,似乎也只适用于单个 Mongo 集合?例如,如果我想搜索怎么办穿过 Dinosaurs = new Meteor.Collection('dinosaurs');Mammals = new Meteor.Collection('mammals');?

感谢任何关于上述 4 个选项的优缺点的建议? 1 似乎相对容易实现,但我不确定使用弹性引擎 here 意味着什么。如果我要实现弹性,我该如何在 Meteor 中实现它?它与实施 Elasticsearch HTTP 有什么不同 API?

与 Search Source 类似,它也支持 Elastic here。老实说,我对这些差异一无所知。

此 github 项目演示了如何将 Meteor 与 ElasticSearch(不是 Mongo)一起用于搜索应用程序

https://github.com/hharnisc/meteor-elasticsearch-demo/tree/master/elasticsearch-demo/packages/elastic-collection

它基本上将一个字段链接到一个触发弹性搜索的会话变量。结果存储在 mongo 集合中,该集合通过 Meteor 机制推送到客户端。这些比数据集小得多,因此可以快速更新。

就跨集合搜索而言,这是一个典型的数据库模式定义问题。如果您需要进行联接,mongodb 不是最佳解决方案。和任何 SQL 数据库一样的关系数据库会更适合,但是,您应该研究 'denormalization' 数据,看看是否可以创建适合您的用例的结构。

这篇文章很好地解释了这意味着什么:

http://blog.mongodb.org/post/87892923503/6-rules-of-thumb-for-mongodb-schema-design-part-2

祝你好运。