什么是在sql数据库中进行搜索的最佳方法,我正在建立的网站将进行许多用户驱动的搜索。
我首先考虑使用sql server全文搜索,但是现在我发现它似乎不支持部分匹配
说我得到了这些数据。
Procter & Gamble
Google
Stackoverflow
A&M Records
并且我想尝试查找带有&的任何内容
SELECT *
FROM dbo.[Companies]
WHERE CONTAINS(Name,'&')
select * FROM [Companies]
WHERE FREETEXT(Name,'&')
这些都不返回任何结果。我将不得不使用
select * FROM [Companies]
WHERE Name like '%&%'
但是据我了解,全表扫描的速度可能很慢。因此,当我搜索大约500万条记录时,我不确定这将如何影响我的网站速度。
我知道这里存在弹性搜索,但是恐怕这将花费我很长时间才能学习,而且我的截止日期很紧,所以我需要一些可以在过渡时期工作的东西,然后我才能朝着更好的方向努力。< / p>
编辑
我应该添加另一个需要处理的用例,例如产品编号(例如,电视机的型号几乎相同,但末尾有一些字母)
Product A - 123456
Product B - 123456A
Product C - 123456B
因此,基本上,如果有人输入“ 123456A”,那么所有3个结果都应返回,这是我不确定“喜欢”是否可以做到的事情。