我正在編寫一個項目,使用Ruby on Rails和Java作爲後端。我注意到ElasticSearch有一個開源的Ruby client它可以構建JSON查詢,它也有Java API。對於使用Rails和Java後端的項目,在哪裏構建ElasticSearch查詢,前端或後端?
在這種情況下,我應該使用Ruby客戶端(在前端創建查詢)還是使用Java API客戶端(在後端創建查詢)?每種方法的優缺點是什麼?
我正在編寫一個項目,使用Ruby on Rails和Java作爲後端。我注意到ElasticSearch有一個開源的Ruby client它可以構建JSON查詢,它也有Java API。對於使用Rails和Java後端的項目,在哪裏構建ElasticSearch查詢,前端或後端?
在這種情況下,我應該使用Ruby客戶端(在前端創建查詢)還是使用Java API客戶端(在後端創建查詢)?每種方法的優缺點是什麼?
Java API可以直接訪問數據庫而不是Rails。目前,所有查詢都必須經過Java API。
你還有疑問嗎?
如果您的Rails應用程序用作客戶端,那就放手吧。讓你的Java /後端明確處理後端。只需從您的Rails應用程序傳遞查詢參數,並構建,執行並返回來自您的Java應用程序的查詢結果。
這是目前的做法。仍然不確定這是否是最好的選擇。使用ElasticSearch Ruby包生成查詢似乎非常靈活。目前,Java應用程序需要包含大量翻譯代碼,這些代碼使用ElasticSearch Java API轉換查詢參數。 – taylorm
我明白,但這是保持您的客戶端和服務器不同的最佳實踐,否則您將在此類分佈式代碼中造成混亂。想象一下,你將來想出一個Android應用程序,你需要查詢,你將不得不在軌道中創建一個用於搜索的Java API,爲其他人創建一個Java,從而最終創建2個端點......不... –
你是什麼意思,你有一個「Rails項目」,「Java作爲後端」? – chrylis
@chrylis由於網站的功能很複雜,大多數後端代碼都是用Java編寫的。 Rails是一個簡單管理前端組件的地方。 – taylorm
我假設你的Rails應用程序正在調用用Java編寫的api。我還假設有一些模型(Rails中的數據庫表),並且在您的Java API中有一些表。現在你想將彈性搜索集成到你的java表或rails表中嗎? – gates