我有一个名为syns的synonyms table
,用于存储单词和现有的同义词。同样,还有另一个表称为subs,其中包含一个单词的word substitutions
。这些表用于在名为institutions
的主表中查找相似的值,该主表托管数据库中的现有名称。
目的是避免考虑同义词和单词替换的相似名称。用户提供了一个新的机构名称,在插入机构表之前,有多个查询用同义词和单词替换替换每个单词。例如,我有以下数据:
substitution word table:
WORD SUBS_LIST
MOUNTAIN MOUNTAIN, MOUNT, MT, MTN
VIEW VIEW, VU
FORMULA FORMULA, 4MULA
Synonym list table:
WORD SYN_LIST
EDUCATION SCHOOL, UNIVERSITY, COLLEGE, TRAINING
institutions table:
NAME
FORMULA VIEW UNIVERSITY
FOURMULAE VULCAN COLLEGE
4MULA VU CAFE
机构表包含数据库中所有现有的名称。然后,当接收到一个新名称时,用每个单词的相应同义词列表和单词替换来替换单词时就不必如此。例如,由于已有记录FORMULA VU SCHOOL
,因此应在数据库中找到一个新名称,例如FORMULA VIEW UNIVERSITY
。
我创建了this fiddle来展示这个想法。但是,我没有得到任何结果。
谢谢
您能否确认我的理解搜索字符串“ FORMULA VU SCHOOL”的第一部分是“ FORMULA”,如果存在以“ FORMULA”开头的字符串,则需要在表机构中进行检查。在这种情况下,命中“ FORMULA VIEW UNIVERSITY”
然后取字符串的第二部分(“ VIEW”),并在表子中查找它。
然后取字符串的第三部分(“ UNIVERSITY”)并在表syns中查找它
之后,在“机构”表中找到的字符串将被翻译为>
FORMULA VIEW UNIVERSITY = FORMULA VIEW EDUCATION
由于我们正在寻找“ FORMULA VU SCHOOL”是否已经存在,以上述方式进行翻译时,我们会得到
FORMULA VU SCHOOL = FORMULA VIEW EDUCATION
并且由于这样的翻译记录已存在于Institution表中,因此该记录需要在预期输出中显示如下
Existing_column_value search_string_value FORMULA VIEW UNIVERSITY FORMULA VU SCHOOL
您能确认这是您要找的吗?
以下功能似乎正常。它使用将逗号分隔的字符串之一拆分为单词技术,也可以应用其他方法。但是最好的办法是将数据模型更改为单个单词同义词,这样可以避免拆分,这可能是不可靠的。您可以在检查新条目时使用此功能,例如: