我可以使用Elastic Search RESTful API而不依赖于弹性搜索的npm

时间:2017-03-07 13:24:09

标签: node.js rest express elasticsearch sails.js

我们想在项目中使用弹性搜索。我们使用的技术是Sails.js和Angular.js。我正在尝试将Elastic Search集成到我们的项目中。我不确定是否可以在不使用npm的情况下使用Elastic Search RESTful API。

3 个答案:

答案 0 :(得分:2)

  

我可以使用Elastic Search RESTful API而不依赖于弹性搜索的npm

(我假设“弹性搜索的npm”是指npm上的弹性搜索模块)

您可以使用任何REST API,而无需使用针对该特定API编写的npm中的特定模块。

唯一的问题是:为什么?

但是要回答你的问题,你可以使用任何可以处理HTTP连接的模块,或者甚至可以使用原始TCP套接字。

因此,如果您的API是RESTful,您可以使用任何模块:

  • http
  • net
  • request
  • request-promise
  • 来自npm的特定模块,用于该服务

前两个是核心节点模块,其他的是npm。

在npm上搜索HTTP和REST:

并阅读以下文档:

使用特定模块通常很有用,因为它可以为您处理许多复杂的事情。例如,查看在Node中使用Twitter API的模块数量:

您可以使用requesthttp甚至net代替这些模块,但您的代码可能要复杂得多。任何其他RESTful服务也是如此。你可以重新发明轮子,或者你可以使用经过充分测试的解决方案。

答案 1 :(得分:0)

是的,可以使用没有其(或任何其他)节点模块的Elasticsearch,使用任何方式来谈论HTTP(或TCP,如@rsp所说)。

但是,使用编写良好的软件包可以省去很多麻烦,您可以更有效地完成工作。

答案 2 :(得分:0)

您可以使用REST / Request客户端执行此操作,只需使用查询DSL。

话虽这么说,使用elasticsearch-js并将查询结构化为服务,帮助器或适配器会更有意义。

我个人使用后一种选择,它对我来说效果很好。发现ES的现有Sails适配器很麻烦。