2010-03-24 125 views
14

我正在考慮在多租戶應用程序中使用Solr,我想知道是否有任何最佳實踐或我應該注意的事項?Solr在多租戶環境中

特別是有一個問題是,每個租戶有一個Solr核心是否有意義。有大量Solr Cores有問題嗎? 我正在考慮使用每個租戶的核心,因爲我可以分別保護每個核心。

感謝

+0

您使用的是哪種客戶端平臺? – 2010-04-07 21:31:22

+0

也考慮ElasticSearch以及 – Karussell 2011-02-04 09:27:30

回答

0

您將不再使用單獨的table in a database爲每個租戶比你一個solr core爲每個租戶。

如果您想像數據庫表這樣的核心,並以這樣一種方式組織您的項目,即每個核心代表問題空間中的一個對象,那麼您可以更好地利用solr。

當你需要索引文本然後快速搜索時solr會閃耀其中。如果你不這樣做,你可能會使用關係數據庫。

另外,從您關於確保每位租戶的solr的問題,我希望您不建議允許登錄用戶直接訪問solr輸出?您的用戶不應該能夠直接訪問您的solr實例。

祝你好運。

3

Solr核心是一個多租戶的好主意,特別是因爲它們可以在運行時進行管理(所以不需要重新啓動服務器)。您不應該因爲擁有多個Solr內核而導致性能問題太多,但要注意一個內核的性能會受到其他內核上的工作的影響 - 他們可能會共享相同的磁盤。

我可以看到爲什麼您可能想要直接訪問API,例如,如果每個「用戶」是Drupal站點或類似的共享主機類型環境。最好的辦法是保護不同的URL,例如如果你有/ solr/admin/cores,/ solr/client1作爲客戶端核心,而/ solr/client2作爲另一個,你將有三種不同的身份驗證,一個用於管理員,另一個用於租戶。這是在容器(Jetty,Tomcat等)中完成的,請看一般的Solr安全頁面:http://wiki.apache.org/solr/SolrSecurity - 您將需要以相同的方式爲每條路徑設置基本訪問登錄。

+1

在你對使用多核心過於興奮之前,我推薦閱讀下面的內容:http://wiki.apache.org/solr/LotsOfCores 基本上,很多核心似乎都能正常工作「 「,但如果你打算擁有10,000個內核,那麼可能無法實現。 看來Solr 4.1將會有更好的工作來處理這個問題。 – ProVega 2012-10-24 17:26:25

0

Thaks ok ..你不能正確地使用緩存(inbuild),也不能滿足你的需求。您添加權限位,您可以在其中更改querycompoent,在該權限位中您可以根據權限正常工作。此外還可以使用按位操作..利用此功能滿足您的需求。