Normalization

照片說明和關鍵字關聯

  • June 14, 2014

我正在創建一個引用圖像的數據庫。關鍵字和標題將成為元數據的一部分。這些標題和關鍵字不一定會添加到照片中以促進質量搜尋。

我想有效地將字幕中的資訊轉換為關鍵字。顯然,字幕中的某些詞不會有用(例如“the”、“he”、“she”、“of”等),我會排除它們,但其他詞會非常有用,特別是如果它們與其他片語合出現。

我試圖找出將這些關鍵字和字幕中的單詞與圖像相關聯的最佳方法。最好創建一個圖像表(文件名、文件路徑、大小等)和一個單詞表,其中每個單詞都有一個 ID,然後創建一個關聯表,將單詞與圖像引用?或者可能是兩個關聯表,一個連結標題詞,另一個連結關鍵字?

這是一個好方法嗎?

最佳解決方案取決於您的 RDBMS,但通常您不需要手動清理字幕,因為數據庫將有一個“停用詞列表”或“停用詞列表”,用於從全文索引中排除單詞(不是與正常聚集/非聚集索引相同)。您可以修改該列表以指定從全文索引中排除哪些單詞。在大多數數據庫中,該列表已經包含介詞、代名詞和其他干擾詞,這意味著搜尋鳥類和飛行將返回“飛行中的鳥類”的標題(假設它存在)。此外,大多數係統可以阻止索引詞,並讓您能夠搜尋詞的變形,例如搜尋“fly”的變形將返回 fly、flyed、flyn 等。

如果標題是關鍵字,則不需要從中解析關鍵字;只需將全文索引添加到標題列。如果除了標題之外您有或想要添加更多關鍵字,您可以單獨索引它們並使用它們使用 RDBMS 的內置數字排名/結果評分來增加或修改標題搜尋 - 對關鍵字的點擊可以提高排名,而錯過則無能為力,甚至降低排名。

如果標題與圖像具有 1:1 的關係(通常是這樣),那麼您甚至不需要單獨的表格;只需將標題儲存在圖像表的另一列中。額外的關鍵字可以被規範化並儲存在一個單獨的表中,這將需要一個帶有來自圖像和關鍵字的外鍵的中間連接表。但是,這會增加複雜性,您可能會發現將空格分隔的單詞列表儲存在 images 表的另一列中會更好。

您選擇的解決方案將取決於幾個因素,包括業務需求、性能要求和案例,即您需要支持哪些類型的搜尋:精確片語、布爾 AND/OR、SOUNDEX 等模糊匹配等。有時全文索引不是’甚至沒有必要。例如,如果詞乾和干擾詞排除不重要,則使用帶萬用字元的 LIKE 進行搜尋可能就足夠了。

引用自:https://dba.stackexchange.com/questions/68218