我有一个网站,前端由 vue.js(SPA) 开发,后端由 node.js 开发。我想在主页的搜索框中使用 Elasticsearch。我应该将搜索查询从客户端调用到 elasticsearch 还是从客户端调用到 nodejs 后端,然后再调用到 elasticsearch?
最佳做法是什么?优缺点都有什么?
我有一个网站,前端由 vue.js(SPA) 开发,后端由 node.js 开发。我想在主页的搜索框中使用 Elasticsearch。我应该将搜索查询从客户端调用到 elasticsearch 还是从客户端调用到 nodejs 后端,然后再调用到 elasticsearch?
最佳做法是什么?优缺点都有什么?
从前端调用它会将您的 ES 服务器暴露在公共网络中。您会遇到安全风险,例如暴露您的数据库。
从后端调用它可以避免公共网络公开,也让您有机会实现一个控制器来处理搜索验证和响应状态。
以我个人的经验,后端方式更适合 ES 查询。
参考:
https://discuss.elastic.co/t/is-it-safe-to-expose-elasticsearch-to-the-internet/246862/5
https://discuss.elastic.co/t/is-it-safe-to-expose-elasticsearch-to-the-internet/247041