我需要一些帮助,为网站创建一个简单的搜索引擎。基本思想是用户将在搜索栏中输入一个字符串,该字符串将在数据库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
为什么不使用全文索引? –