1

我正在尝试创建一个简单的工具,允许用户使用我定义的同义词搜索大约 200 个单词。

示例:集合中的单词是“火”。用户可以搜索fireflameflamesmatches等(我把它们放进去)......它会返回“fire”

初步想法:我的直接想法是只有一个两列表,其中第一列是实际单词,第二列是适当的同义词:

ACTUAL             SYNONYM
fire               flame
fire               flames
fire               matches

所以当用户搜索时,我会做一个简单的选择:

SELECT actual WHERE synonym = "THE SEARCH TERM"

问题:我应该如何设置我的数据库来搜索这些单词并将它们与同义词相关联?我提出的解决方案是最好/最有效的方法吗?我觉得我应该能够每个“实际”有一行,并将所有同义词放在第二列中,但我不知道如何搜索第二列,或者它是否会比只是一个直接的列表。

4

1 回答 1

1

只要您的同义词每个都映射回一个“实际”或核心词,那么您所拥有的就可以了。那么它只是

select ACTUAL from Your_Table where SYNONYM = "The_Search_Term"

你会得到零或一个记录。

如果你的同义词足够不同,我可能会使用一个like子句,所以你不需要弄乱复数:

select ACTUAL from Your_Table where SYNONYM like "%The_Search_Term%"

这样你就不需要同时包含flameand flames; flame对两者都有效。

于 2013-10-30T02:32:02.383 回答