我需要一些幫助,爲網站創建一個簡單的搜索引擎。基本思想是用戶將在搜索欄中輸入一個字符串,該字符串將在數據庫key_word
中進行比較並獲取結果。如何使用sql server建立網站搜索引擎
比方說,我在下面的表格必須在SQL Server數據庫:
|----|----------|----------------------|
| ID | URL | key_word |
|----|----------|----------------------|
| 1 | url1.com | cat short red NYC |
| 2 | url2.com | tall blue LA |
| 3 | url3.com | skinny NYC green |
| 4 | url4.com | cat black get |
|----|----------|----------------------|
現在,在搜索欄,可以說用戶想要搜索的字符串以下「從紐約得到紅貓」。我想在數據庫'key_word'中搜索這個。
String key = "get red cat from NYC"
我曾嘗試:
到目前爲止,我有以下以下查詢,以便從數據庫中搜索。如果用戶只想搜索一個單詞,這非常有用。但字符串'key'在這裏不起作用,它將返回0結果。我需要一些想法,這樣我可以做出更好的查詢。
SELECT *
FROM [SearchTable]
WHERE [key_Word] LIKE % key %;
我想要什麼:
我想改變此SQL Server查詢,以便它返回ID = 1,3,4。
換句話說。我想取這個字符串:
String key = "get red cat from NYC"
並首先在數據庫中搜索單詞「get」。它沒有出現,所以去下一個字。下一個字是「紅色」,這在ID = 1中顯示。下一個字是「貓」,這在ID = 1,4中顯示。下一個單詞是「from」,這不會顯示在任何行中。下一個詞是「NYC」,這在ID = 1,3中顯示。
把所有的ID放在一起,你得到ID = 1,1,4,1,3。
比我想排序,以便ID = 1顯示在頂部和ID = 3,4可以在按鈕,因爲他們是綁在一起。
我一直希望這樣做只有一個SQL查詢,因爲如果我一直連接到數據庫比速度也會下降。所以我想到了一些SQL Server的功能?
爲什麼你的關鍵字不是原子的?像會慢,不可SARGable。索引不能使用。 – lad2025
爲什麼不使用全文索引? –