【问题标题】:Search tool in Meteor JSMeteor JS 中的搜索工具
【发布时间】:2015-06-28 22:41:50
【问题描述】:

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

  1. Mattodem 轻松搜索
  2. 搜索源代码
  3. Atmosphere 上的弹性搜索包(听说过时了)
  4. Atmosphere 上的弹性大数据包

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

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

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

Search Source 也一样,它也支持 Elastic here。老实说,我不知道这些差异。

【问题讨论】:

标签: javascript mongodb search meteor elasticsearch


【解决方案1】:

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

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

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

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

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

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

祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2011-07-08
    • 2012-06-04
    相关资源
    最近更新 更多