0

我正在编写一个项目,使用Ruby on Rails和Java作为后端。我注意到ElasticSearch有一个开源的Ruby client它可以构建JSON查询,它也有Java API对于使用Rails和Java后端的项目,在哪里构建ElasticSearch查询,前端或后端?

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

+0

你是什么意思,你有一个“Rails项目”,“Java作为后端”? – chrylis

+0

@chrylis由于网站的功能很复杂,大多数后端代码都是用Java编写的。 Rails是一个简单管理前端组件的地方。 – taylorm

+0

我假设你的Rails应用程序正在调用用Java编写的api。我还假设有一些模型(Rails中的数据库表),并且在您的Java API中有一些表。现在你想将弹性搜索集成到你的java表或rails表中吗? – gates

回答

0

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

你还有疑问吗?

如果您的Rails应用程序用作客户端,那就放手吧。让你的Java /后端明确处理后端。只需从您的Rails应用程序传递查询参数,并构建,执行并返回来自您的Java应用程序的查询结果。

+0

这是目前的做法。仍然不确定这是否是最好的选择。使用ElasticSearch Ruby包生成查询似乎非常灵活。目前,Java应用程序需要包含大量翻译代码,这些代码使用ElasticSearch Java API转换查询参数。 – taylorm

+0

我明白,但这是保持您的客户端和服务器不同的最佳实践,否则您将在此类分布式代码中造成混乱。想象一下,你将来想出一个Android应用程序,你需要查询,你将不得不在轨道中创建一个用于搜索的Java API,为其他人创建一个Java,从而最终创建2个端点......不... –