2011-05-12 53 views
0

如何在同一個Solr模式中索引文本文件,網站和數據庫?所有3個來源是一個要求,我試圖找出如何做到這一點。我做了一些例子,它們工作正常,因爲它們彼此分離,現在我需要它們都是1模式,因爲用戶將在所有這3個數據源中進行搜索。如何索引Solr中的不同來源?

我該如何繼續?

回答

2

你應該勾畫了幾個音符,爲您的每個內容來源:

  • 哪些元數據可用
  • 是怎樣的信息訪問
  • 怎麼辦,我要提供的信息

一旦完成,確定要搜索哪些元數據。其中一些內容可能只針對其中一個內容來源(例如網頁上的作者或數據庫行中的任何給定字段),而其他內容則來自所有來源(如唯一ID,標題,文本內容)。根據需要使用copy-fields來合併字段。

不同項目的元數據會有很大差異,但是 - 更新日期,文件名以及可以解析出文本文件的任何結構化數據等內容肯定有助於提高相關性。除此之外,從案件到案件情況各不相同。也許文件路徑暗示可以用作元數據的(可能是非正式的)分類。也許文件名包含元數據本身(如年份,關鍵字,產品名稱等)。

準備在顯示結果時爲不同的來源使用不同的字段。 A source字段在創建結果圖塊方面走了很長的路 - 它可能會成爲您最常用的方面。

廣泛使用複製字段的替代方法(也許是首選)使用DisMax/EDisMax請求處理程序,以方便在多個字段中進行搜索。

考慮使用複製字段和(e)dismax的混合。例如,將所有字段複製到無需存儲的全部文本字段中,並將其包含在搜索中,但是具有較低的提升值,並且包括高度加權的字段(例如標題,標題或關鍵字,或文件名)。 dismax中有很多參數需要調整,但這絕對是值得的。

+0

謝謝您的詳細回覆。你可以擴展元數據部分嗎?這是否意味着文件名稱,創建日期等...?我需要進行搜索的信息是一些表格列和文本文件中的文本。使用用戶輸入關鍵字的單個文本字段進行搜索。搜索應通過所有類型的數據源並返回所有相關結果。 – Ali 2011-05-12 13:15:01

+0

@Ali:已更新,但真的,看看dismax請求處理程序,它應該很好地映射到您的要求 – 2011-05-13 09:30:57