【发布时间】:2017-06-30 12:11:57
【问题描述】:
使用 Laravel 5.3 和 MySQL 5.7.17。 我将文本存储在 TEXT 列中(不知道限制)。
**我想在此文本中搜索不同语言中不同单词的不同变体,这些变体应该导致相同的匹配。
示例:**
'bird' -> bird
'Vogel' -> bird
'pájaro' -> bird
尝试 #1: 设置一个有两列的表:
- c1 包含字符串'bird'
- c2 包含一个带有所有替代搜索词的序列化数组。然后,在大文本中搜索未序列化数组的所有替代搜索字符串。
优点:只需要一张桌子 缺点:一直序列化和反序列化数据 - 性能不佳?
尝试#2:设置两个表,其中一个包含我将用于我的代码的真实、正确的搜索词。第二个包含所有通过 Laravel 中的“一对多”关系链接的替代搜索词。
然后搜索第二个表中的所有术语,如果找到,给我匹配第一个表中对应的真实字符串。
优点:可能性能更好 缺点:两个不同的表。
由于我处理的单词之间并不总是有密切的联系,所以我不能依赖像 spell checker 这样的东西。
无论如何都想手动管理替代搜索词库。有更好的解决方案吗?
【问题讨论】: