2013-07-28 111 views
0

我正在嘗試爲我的應用程序構建一個搜索引擎。我有一個擁有近150個表的mysql數據庫。每個表都有一個稱爲DB_ID和各種其他列的唯一字段。現在,當我使用Apache solr索引數據時,只索引DB_ID列就足夠了嗎?此外,我對Solr非常新,從教程中我找不到如何索引Solr中的多個表。在我的情況下,我有大約150桌。那麼我該如何解決這個問題呢?在Apache Solr中索引MySQL

+0

另外我必須指出,差異表中的各個字段是不同的。沒有共同的領域。 – user2627317

回答

0

您的DB_ID可能不是一個有用的項目索引。如果您希望能夠一般地搜索數據庫中所有表的記錄,則可能需要商店存儲每個記錄的DB_ID和表名,索引您希望能夠搜索的任何其他字段上。您可以使用相同的字段名稱將所有這些字段編入索引(例如「content」)。這將允許通過在content字段上的簡單搜索在每個表的每個記錄上進行搜索。我猜想這也是有用的,同時索引表名以及存儲它,以便您可以選擇只搜索一個表或表記錄的子集。

一旦在索引中找到數據庫記錄,就可以獲取表名和DB_ID並從數據庫中檢索記錄。

+0

感謝您的回覆!但我仍然不確定如何將近150個表導入Solr,而表中沒有任何公共字段。此外,我讀了一些我們通常索引具有獨特值的字段的地方。是否總是需要索引我們正在運行搜索的字段? – user2627317

+0

我真的不知道索引字段具有唯一值的含義。通常只存儲一個唯一的標識符,以便從另一個數據源(通常是數據庫)中提取完整的記錄。但是,是的,你必須索引一個字段來搜索它。你不需要*存儲*值來搜索它,但你必須*索引它。 – femtoRgon

+0

有關在solr中連接多個表的任何幫助? – user2627317