我正在嘗試向我的網站進行搜索功能:
不幸的是,我不知道該如何操作?如何實現數據庫中的搜索?
是一個足夠的搜索功能?例如:
SELECT * FROM Employees WHERE (Title Like 'Title%')
還是有更專業的方法嗎? (例如,正則表達式)
我正在嘗試向我的網站進行搜索功能:
不幸的是,我不知道該如何操作?如何實現數據庫中的搜索?
是一個足夠的搜索功能?例如:
SELECT * FROM Employees WHERE (Title Like 'Title%')
還是有更專業的方法嗎? (例如,正則表達式)
LIKE是完美
你可能想尋找到一個全文搜索引擎,如Lucene。
Lucene是一個獨立的軟件編程,它可以索引你要求它索引的任何東西(例如數據庫中的一些對象)。執行搜索時,首先使用Lucene API搜索全文索引並檢索一組對象ID。然後,您執行簡單的數據庫檢索以獲取具有這些ID的對象。
如果您要求如何在您的網站上實現搜索功能(如每個/某些頁面頂部的搜索框),則取決於您網站的實施情況。
有,如果你想實現一個系統上爲關係數據執行即席搜索,你可以使用幾種方法:
關係數據庫,你幾乎留下了子字符串搜索(LIKE),它可能不夠靈活,並且只能在短列(如標題)下工作(高效)。
因此,您可能需要使用全文搜索引擎(如Lucene)。 在這種情況下,數據庫外部會有一個全文搜索索引,用於搜索關鍵字。
某些關係數據庫對其文本列具有可選的全文搜索功能。 使用這些,您可以使用SQL發出全文查詢(甚至可以將其與針對其他列的查詢結合使用)。 在甲骨文看起來像
SELECT id FROM table WHERE CONTAINS(text_column, 'java AND text', 1) > 0;
有趣的是,我從來沒有真正想過如何全文索引實際工作。 – RichardOD 2009-07-07 11:00:48