我正在尝试创建一个简单的工具,允许用户使用我定义的同义词搜索大约200个单词。
示例:集合中的单词是“fire”。用户可以搜索 fire , flame , flames ,匹配等(我把它们放进去)......它将返回“fire”。
初步想法:我的想法是只有一个两列表,其中第一列是实际字,第二列是适当的同义词:
ACTUAL SYNONYM
fire flame
fire flames
fire matches
因此,当用户搜索时,我会做一个简单的选择:
SELECT actual WHERE synonym = "THE SEARCH TERM"
问题:我应该如何设置数据库来搜索这些单词并将它们与同义词相关联?我提出的解决方案是最好/最有效的方法吗?我觉得我应该能够每个“实际”有一行,并且只将所有同义词放在第二列,但我不知道如何搜索第二列,或者它是否会比只是一个直接的清单。
答案 0 :(得分:1)
只要你的同义词每个都映射回一个“实际”或核心词,你所拥有的就好了。那就是
select ACTUAL from Your_Table where SYNONYM = "The_Search_Term"
你会得到零或一个记录。
如果您的同义词不够相似,我可能会使用like
子句,因此您不需要弄乱复数:
select ACTUAL from Your_Table where SYNONYM like "%The_Search_Term%"
这样您就不需要同时包含flame
和flames
; flame
将适用于两者。