我目前正在嘗試使用asp構建一個內部搜索引擎數據庫。我不是專家,只是簡單介紹了這種編碼風格。我遇到的麻煩是這樣的:建築搜索引擎中的多個關鍵字
(例如)我有兩個相對相同的文檔,並且有相同的關鍵字來描述它們。但是,表中的關鍵字不是以相同的順序寫入的。寫在表中的所有關鍵字都用空格分隔。
項目 1關鍵字:備件發動機
項目 2個關鍵字:備用發動機部件
現在,我有可以讓我顯示項目1和2,如果我的代碼僅輸入一(1)的那些關鍵詞:
sql = "Select title, descript, url, uid FROM searchMachine WHERE keywords LIKE '%" & Replace(keywords, "'", "''") & "%' ORDER BY uid;"
但是,如果我要輸入「備用發動機」的搜索框,那麼只會顯示第2項,而不會顯示第1項。另外,如果要輸入「零件引擎」或「發動機零件」,它們都不會顯示。它似乎只參加了列出的前2個(或2個關鍵字)關鍵字。我希望完成的目標是允許用戶輸入的分組關鍵字(即,備用引擎部分),並允許其仍顯示具有任何關鍵字列出的所有相關信息,而不必擔心編寫關鍵字組或關鍵字組一遍又一遍。
我知道有一個功能在那裏進行全文搜索,但我研究過有安全漏洞的情況,所以我想避免冒這個風險。我有一種感覺,這可能與AND或OR語句更相關,但如果需要它,我不確定該放置。有沒有人有任何關於這種情況的專業知識,並願意提供幫助?
爲什麼不使用現有的搜索引擎(如lucene/solr/elasticsearch)而不是自己構建並重新創建所有內容?數據庫中的全文搜索通常非常有限 – Karussell 2013-04-09 18:41:50