2016-05-07 75 views
0

可以說我有大Solr可以容納~150M文件。 我也有100,000個用戶,每個用戶都有他保存的文檔。 我的問題:在索爾的具體ID上搜索

  1. 什麼是存儲這些文件的ID(即每個用戶保存的文件)
  2. 如果我決定要存儲在蒙戈或MySQL的ID的最佳方式,什麼是允許的最好方式用戶在他們的文檔上進行搜索,這意味着我只在Mongo/MySQL上存儲ID,但實際信息在Solr上。

謝謝。

回答

0

您可以爲正在索引的每個文檔添加一個字段username_s。該字段包含可以訪問文檔的用戶名。如果您想讓更多人訪問此文檔,您還可以使用一系列用戶。

然後在您的後端,您可以添加& fq = username_s:User。即使索引了1億個文檔,也只顯示屬於該用戶的文檔。

/core/select?q=*.*&fq=username_s:<User> 

你可以存儲在相同的核心所有用戶的所有文件,離開現場「ID」空白和unqiue ID自動通過Solr中爲您生成。

+0

感謝您的回答,但我不認爲這種解決方案將工作在高規模,每個文件可以訪問1000年的用戶,我怎麼能存儲在username_s這麼多user_ids? –

+0

爲什麼你要在這個領域存儲這麼多的用戶名?如果您希望每個人都可以訪問此文檔,請忽略&fq = username_s參數,或者對於某些用戶,您可以定義組字段。要記錄用戶添加的文檔中的ID,這需要在您自己的索引管道腳本中完成。每個文件都有自己的ID。您可以將文檔的ID登錄到MySQL數據庫中,並將其顯示給創建它的用戶,例如在Web界面中。 – user3606329