我们想在项目中使用弹性搜索。我们使用的技术是Sails.js和Angular.js。我正在尝试将Elastic Search集成到我们的项目中。我不确定是否可以在不使用npm的情况下使用Elastic Search RESTful API。
答案 0 :(得分:2)
我可以使用Elastic Search RESTful API而不依赖于弹性搜索的npm
(我假设“弹性搜索的npm”是指npm上的弹性搜索模块)
是强>
您可以使用任何REST API,而无需使用针对该特定API编写的npm中的特定模块。
唯一的问题是:为什么?
但是要回答你的问题,你可以使用任何可以处理HTTP连接的模块,或者甚至可以使用原始TCP套接字。
因此,如果您的API是RESTful,您可以使用任何模块:
http
net
request
request-promise
前两个是核心节点模块,其他的是npm。
在npm上搜索HTTP和REST:
并阅读以下文档:
使用特定模块通常很有用,因为它可以为您处理许多复杂的事情。例如,查看在Node中使用Twitter API的模块数量:
您可以使用request
,http
甚至net
代替这些模块,但您的代码可能要复杂得多。任何其他RESTful服务也是如此。你可以重新发明轮子,或者你可以使用经过充分测试的解决方案。
答案 1 :(得分:0)
是的,可以使用没有其(或任何其他)节点模块的Elasticsearch,使用任何方式来谈论HTTP(或TCP,如@rsp所说)。
但是,使用编写良好的软件包可以省去很多麻烦,您可以更有效地完成工作。
答案 2 :(得分:0)
您可以使用REST / Request客户端执行此操作,只需使用查询DSL。
话虽这么说,使用elasticsearch-js并将查询结构化为服务,帮助器或适配器会更有意义。
我个人使用后一种选择,它对我来说效果很好。发现ES的现有Sails适配器很麻烦。