javascript - Meteor JS 中的搜索工具

标签 javascript mongodb search meteor elasticsearch

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

  1. Mattodem 轻松搜索
  2. 搜索来源
  3. Atmosphere 上的 Elasticsearch 包(听说过时了)
  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

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

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

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

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

祝你好运。

关于javascript - Meteor JS 中的搜索工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29777824/

相关文章:

javascript - 用vuejs项目实现hls.js库

javascript - Vue.js 绑定(bind)对象属性

javascript - 使用 Kendo UI 网格和 Breeze.js 超出了最大调用堆栈

node.js - 在使用 Bluebird promise mongodb 后,使用 mongodb 的查找游标的 next/each 函数作为 promise 的方法

java - 搜索数组以查找一定数量的最近值的方法

search - 将文本框放置在 Flutter 的 appbar 中

javascript - HighCharts 中的绘图线重叠 || react Highcharts || Y轴间隔

Java - MongoDB 不区分大小写,不检查完全匹配

node.js mongodb 检索 ISODate 格式

algorithm - 在比 O((k+N) * 2^(N/2)) 更快的范围内生成所有子集总和?