如何通过搜索我定义的同义词来安​​排数据库查找单词?

时间:2013-10-30 02:23:09

标签: database search database-design synonym

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

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

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

ACTUAL             SYNONYM
fire               flame
fire               flames
fire               matches

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

SELECT actual WHERE synonym = "THE SEARCH TERM"

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

1 个答案:

答案 0 :(得分:1)

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

select ACTUAL from Your_Table where SYNONYM = "The_Search_Term"

你会得到零或一个记录。

如果您的同义词不够相似,我可能会使用like子句,因此您不需要弄乱复数:

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

这样您就不需要同时包含flameflames; flame将适用于两者。