对于数据库和搜索来说,我是一个新手,所以请耐心等待。我试图在Meteor应用程序中实现搜索功能。 我已经通过大气检查并偶然发现了这4个选项。
我的需求是简单搜索,能够处理可能具有数据嵌套的更大数据集。例如,一个任务,可能有评论或链接等(全文和超过正则表达式查询将是好的)
我读到,为了便于搜索,即使使用某种形式的弹性或Mongodb应用程序,似乎只应用于单个Mongo集合?例如,如果我想要搜索
Dinosaurs = new Meteor.Collection('dinosaurs');
和
Mammals = new Meteor.Collection('mammals');
?
对上述4个选项的利弊有任何建议吗? 1似乎相对容易实现,但我不确定使用弹性引擎here意味着什么。如果我要实现弹性,我该如何在Meteor中实现呢?它与实现Elasticsearch HTTP API有何不同?
对于搜索源,它也支持Elastic here。老实说,我对这些差异一无所知。
答案 0 :(得分:2)
此github项目演示了如何将Meteor与ElasticSearch(非Mongo)一起用于搜索应用程序
它基本上将一个字段链接到会话变量,该变量触发弹性搜索。结果存储在mongo集合中,该集合通过Meteor机制推送到客户端。它们比数据集小得多,因此可以快速更新。
就搜索集合而言,这是数据库模式定义的典型问题。如果你需要做连接,mongodb不是最好的解决方案。和任何SQL DB一样的关系数据库更适合。但是,您应该研究数据的“非规范化”,看看是否可以创建一个适合您的用例的结构。
本文解释了这意味着什么:
http://blog.mongodb.org/post/87892923503/6-rules-of-thumb-for-mongodb-schema-design-part-2
祝你好运。