答案 0 :(得分:5)
如何预处理(一次)items表(并且需要处理添加到其中的每个新条目),以创建具有
的单词出现表CREATE TABLE WordItemOccurance
(
[Word] varchar(50) not null,
ItemId int not null
constraint FK_Items references ItemTable(ID)
)
迭代所有项目,分成单独的单词,并在发现时将条目添加到出现表中。
在[Word]上创建聚集索引并加入ItemId上的Item表应该很快。
答案 1 :(得分:4)
我投票赞成Mitch Wheat's回答,但我也会尝试一些技巧来测试效果。
我很担心有一个表[char],[int],你可能仍然会发现自己正在执行大量无意义的字符串比较,特别是如果你在这个新表上使用%word%。 (重复但不匹配我们的搜索条目)。
我可能会选择
进行实验Words
-----
chars | word_id
WordsToEntry
------------
word_id | entry_id
并查看数据库开销是否值得缓解此问题(我无法测试,抱歉)
答案 2 :(得分:1)
您可以尝试使用布隆过滤器。