2017-03-07 46 views

回答

2

我可以用一个弹性搜索的RESTful API,而不依赖于弹性搜索的NPM

(我认为是“弹性搜索的NPM”你的意思是在新公共管理的弹性搜索模块)

是的。

你可以使用任何REST API,而无需使用来自该特定API编写的新公共管理的特定模块。

唯一的问题是:为什么呢?

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

所以,如果你的API是基于REST的,你可以使用任何模块:

  • http
  • net
  • request
  • request-promise
  • 从故宫的特定模块为服务

前两个是核心节点的模块,其他的都在NPM。

搜索HTTP和REST的NPM:

和阅读的文档:

仍然使用特定模块通常很有用,因为它可以为您处理许多复杂的事情。例如看到有多少模块使用Twitter的API中的节点:

你可以使用requesthttp甚至net,而不是这些模块,但你的代码可能是显著更复杂。对于任何其他RESTful服务也是如此。您可以重新发明轮子,或者您可以使用经过良好测试的解决方案。

0

是的,可以使用Elasticsearch而不使用其(或任何其他)节点模块,以任何方式与HTTP(或TCP,如@rsp所述)一样对话。

但是,使用写得很好的包可以节省很多麻烦,并且可以高效地完成工作。

0

您可以使用REST/Request客户端来执行此操作,并简单地使用Query DSL。

也就是说,使用elasticsearch-js并将您的查询构建到服务,帮助程序或适配器中会更有意义。

我个人使用后者的选项,它对我很好。发现ES现有的Sails适配器很麻烦。