Meteor JS中的搜索工具

时间:2015-04-21 16:17:05

标签: javascript mongodb search meteor elasticsearch

对于数据库和搜索来说,我是一个新手,所以请耐心等待。我试图在Meteor应用程序中实现搜索功能。 我已经通过大气检查并偶然发现了这4个选项。

  1. Mattodem easy search
  2. 搜索来源
  3. Atmosphere上的弹性搜索包(听说已过时)
  4. Atmosphere上的弹性大数据包
  5. 我的需求是简单搜索,能够处理可能具有数据嵌套的更大数据集。例如,一个任务,可能有评论或链接等(全文和超过正则表达式查询将是好的)

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

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

    对于搜索源,它也支持Elastic here。老实说,我对这些差异一无所知。

1 个答案:

答案 0 :(得分:2)

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

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

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

就搜索集合而言,这是数据库模式定义的典型问题。如果你需要做连接,mongodb不是最好的解决方案。和任何SQL DB一样的关系数据库更适合。但是,您应该研究数据的“非规范化”,看看是否可以创建一个适合您的用例的结构。

本文解释了这意味着什么:

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

祝你好运。