0

是否可以不使用全文索引,我们可以根据关键字搜索巨大的表格吗?

我想搜索词Country man working,它返回以下结果:

  1. 乡下人开始工作
  2. 濒临失败的国家
  3. 人开始他的工作
4

2 回答 2

1

创建一个表以包含字典中的所有单词,减去噪音单词。

创建一个表以将字典关键字表链接到您的数据表

编写一些代码以在链接表中创建记录,其中字典中的单词出现在要搜索的表中的文本列中。

然后你可以像这样搜索一下:

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 表现更好。

总而言之,您想查看每行一个单词的表,您想在链接表中找到匹配的单词,然后您可以从那里找到原始表中的记录。

于 2012-04-18T15:11:15.010 回答
0

这应该返回您需要的结果:

SELECT *
FROM TABLE
WHERE Field LIKE '%country%'
OR Field LIKE '%man%'
OR Field LIKE '%working%'

虽然不能保证速度...


评论中的注释 - 这确实不是这样做的方法。全文索引是一种使用方法,但您没有详细说明为什么它不是一个选项。

于 2012-04-18T09:53:04.180 回答