【问题标题】:How to get elastic search to play with MongoDb and node.js?如何让弹性搜索与 MongoDb 和 node.js 一起玩?
【发布时间】:2013-01-26 12:04:19
【问题描述】:

我对 mongodb 和 node.js 都还很陌生,但最近一切正常,直到我需要向我的网站添加全文搜索。根据我的研究,我发现 Elasticsearch 非常适合,但我无法弄清楚如何让它与 node.js 和 mongodb 一起工作。我目前正在使用 Heroku 和 MongoLab 来托管我的应用程序。这是我的问题。

  1. 如何托管 Elasticsearch?

  2. 如何使我的所有 mongo 数据可用于 elasticsearch 我是使用河流还是手动插入和删除所有数据?

    我在 river 找到了一些东西,但我不太确定如何自动实现这一点以及在哪里托管它。

  3. 如何从 node.js 查询 Elasticsearch?是否有允许这样做的软件包?

编辑:

问题 2 确实是我正在努力解决的问题。我还包括了问题 1 和 3,以帮助刚接触该主题并来自 google 的人。

【问题讨论】:

  • 无意冒犯,但这似乎是一组问题,其答案可以通过阅读 ElasticSearch 与 MongoDB 一起使用的文档的第一页轻松修饰;我的意思是“我如何托管 Elasticsearch?”...
  • 是的,问题 2 可能是唯一一个很难回答的问题,我添加了其他两个只是为了帮助其他想要开始的人。
  • 我在大型 EC2 实例上使用 ElasticSearch 0.9.11 + 在两个高内存 EC2 实例上使用 MongoDB 2.4.9 副本集,效果非常好。每秒大量的插入、大量的更新和大量的删除,你无法通过使用其他任何东西来像你提到的 MongoDB-river 那样流畅和无缝地做到这一点。它会照顾您的 oplog。顺便说一句,手动?!你在开玩笑吧?如果您的文档几乎是静态的,只是坐在 MongoDB 中,请不要费心建立连接,只需将索引自动插入 ElasticSearch 即可。这条河流有助于使这些交易自动化。

标签: node.js mongodb elasticsearch


【解决方案1】:

1) 在您自己的服务器/VM/其他任何东西上......或使用托管服务,例如https://searchbox.io/

2) 您可以创建一个脚本来索引现有数据,然后在创建新数据后为其建立索引,或者使用河流来索引您当前的数据库。

3) ElasticSearch 是一个简单的 HTTP API,您可以使用“http”模块发出自己的请求,也可以使用 https://github.com/mikeal/request 之类的东西来简化它

你也可以使用像https://github.com/phillro/node-elasticsearch-client这样的第三方库

【讨论】:

    【解决方案2】:

    Searchly.com(又名 SearchBox.io)引入了一个新的爬虫功能,包括 MongoDB 爬虫。 它从给定的集合中获取数据并定期同步到 ElasticSearch。检查http://www.searchly.com/documentation/crawler-beta/

    【讨论】:

      【解决方案3】:
      1. 您可以在自己的服务器上托管或使用 aws elasticsearch 服务或使用 elasticsearch 提供的弹性云。
      2. 尝试以下三种解决方案中的任何一种:- i) 尝试使用 mongoosastic。 NPM 包 ii) 使用 mongo 连接器。 iii) 用于将数据索引到 elasticsearch 的 python 脚本
      3. 弹性搜索-js。 JavaScript 客户端库

      【讨论】:

        猜你喜欢
        • 2013-09-16
        • 1970-01-01
        • 2021-11-23
        • 2021-08-20
        • 1970-01-01
        • 2014-06-06
        • 2020-03-29
        • 2022-12-08
        • 2017-03-31
        相关资源
        最近更新 更多