是否可以不使用全文索引,我们可以根据关键字搜索巨大的表格吗?
我想搜索词Country man working
,它返回以下结果:
- 乡下人开始工作
- 濒临失败的国家
- 人开始他的工作
是否可以不使用全文索引,我们可以根据关键字搜索巨大的表格吗?
我想搜索词Country man working
,它返回以下结果:
创建一个表以包含字典中的所有单词,减去噪音单词。
创建一个表以将字典关键字表链接到您的数据表
编写一些代码以在链接表中创建记录,其中字典中的单词出现在要搜索的表中的文本列中。
然后你可以像这样搜索一下:
SELECT T.TextStuff
FROM KeywordTable AS K
JOIN LinkTable AS L ON L.KeywordID = K.KeywordID
JOIN TableToSearch AS T ON T.KeyWordID = L.KeywordID
WHERE K.Keyword = 'Country'
OR K.Keyword = 'man'
OR K.Keyword = 'working'
那只是伪代码,但希望它能证明这个想法。设置耗时,但应该比做一堆 LIKE 表现更好。
总而言之,您想查看每行一个单词的表,您想在链接表中找到匹配的单词,然后您可以从那里找到原始表中的记录。
这应该返回您需要的结果:
SELECT *
FROM TABLE
WHERE Field LIKE '%country%'
OR Field LIKE '%man%'
OR Field LIKE '%working%'
虽然不能保证速度...
评论中的注释 - 这确实不是这样做的方法。全文索引是一种使用方法,但您没有详细说明为什么它不是一个选项。