【问题标题】:For a project using Rails with Java backend, where to construct ElasticSearch query, front end or back end?对于使用带有 Java 后端的 Rails 的项目,在哪里构建 ElasticSearch 查询,前端还是后端?
【发布时间】:2017-06-12 06:57:40
【问题描述】:

我正在编写一个使用 Ruby on Rails 和 Java 作为后端的项目。我注意到 ElasticSearch 有一个开源的 Ruby client,它可以在其中构造 JSON 查询,它也有 Java API

在这种情况下,我应该使用 Ruby 客户端(在前端创建查询)还是 Java API 客户端(在后端创建查询)?每种方法的优缺点是什么?

【问题讨论】:

  • 你有一个“Java 作为后端”的“Rails 项目”是什么意思?
  • @chrylis 因为网站的功能很复杂,所以大部分后端代码都是用 Java 编写的。 Rails 用作简单管理前端组件的地方。
  • 我假设您的 Rails 应用程序正在调用用 Java 编写的 api。而且我还假设有一些模型(Rails 中的数据库表),并且您的 Java API 中有一些表。现在您想将弹性搜索集成到您的 java 表或 rails 表中吗?
  • @gates Java API 可以直接访问数据库而不是 Rails。目前,所有查询都必须通过 Java API。

标签: java ruby-on-rails ruby elasticsearch elasticsearch-java-api


【解决方案1】:

Java API 可以直接访问数据库而不是 Rails。目前,所有查询都必须通过 Java API。

你还有疑问吗?

如果您的 rails 应用程序被用作客户端,那就顺其自然吧。并让您的 Java/后端显式处理后端。只需从您的 Rails 应用程序传递查询参数,然后从您的 Java 应用程序构造、执行和返回查询结果。

【讨论】:

  • 这是目前的做法。仍然不确定这是否是最好的方法。使用 ElasticSearch Ruby 包生成查询似乎非常灵活。目前,Java 应用程序需要包含大量使用 ElasticSearch Java API 转换查询参数的翻译代码。
  • 我明白这一点,但这是让您的客户端和服务器保持不同的最佳做法,否则您将来会使用这种分布式代码造成混乱。想象一下,你将来想出了一个 android 应用程序并且你需要查询,你必须在 rails 中创建一个 api 用于搜索,并为其他人创建一个 java,因此最终创建了 2 个端点......不......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 2018-09-17
相关资源
最近更新 更多