越來越多的我看到搜索不僅在特定列中查找子字符串,而且他們似乎在所有列中搜索。一個例子是在亞馬遜,你可以搜索「阿諾德」,它會發現電影奔跑的人主演的阿諾德施瓦辛格爾和古德玩具阿諾德打鼾豬。我不知道這種類型的搜索(廣泛搜索?全球搜索?)是什麼,這使我感到困惑。但我真正想知道的是以何種方式完成這種類型的搜索的正常模式是什麼。用於搜索整個數據庫記錄而非特定字段的模式
明顯,而緩慢,方式做這將是尋找在筆者,「阿諾德」的說明文的標題,「阿諾德」子串「阿諾德」等
的想到的第一個快速解決方案是將用於描述產品的每個詞的映射存儲到產品本身,然後搜索該詞映射。這可能很快,但對我來說看起來並不太合適。
有可能有一百種方法來完成這一點,其中一些可能甚至不使用數據庫。但是規範是什麼?
這是一個想法。在搜索LIKE'%Arnold%'時,您會在該列上使用什麼樣的索引以避免完整的索引掃描? – 2010-09-07 20:05:58
通常,我將在該表上啓用全文,然後將該列添加到全文索引並以這種方式進行搜索。 – 2010-09-08 14:05:55
+1:我喜歡這個主意。所以「全文搜索」就是這個適當的術語,或者是Oracle世界中的「Oracle文本」。 – 2010-09-08 16:53:04