使用Laravel 5.3和MySQL 5.7.17。 我将文本存储在TEXT列中(不知道限制)。
**我想在此文本中搜索不同语言中不同词语的不同变体,这些变体应导致相同的匹配。
实施例:**
'bird' -> bird
'Vogel' -> bird
'pájaro' -> bird
尝试#1: 设置一个包含两列的表:
优点:只需要一张桌子 缺点:始终序列化和反序列化数据 - 性能不佳?
尝试#2:设置两个表,一个包含我将用于我的代码的真实,正确的搜索词。第二个包含通过“一对多”链接的所有替代搜索字词。拉拉维尔的关系。
然后搜索第二个表中的所有术语,如果找到,则为第一个中相应的实际字符串匹配。
优势:可能性能更好 缺点:两个不同的表。
由于我处理的语言并不总是彼此保持密切联系,因此我无法依赖拼写检查程序等内容。
无论如何都希望手动管理替代搜索词的库。有没有更好的解决方案呢?
答案 0 :(得分:1)
1桌怎么样:
我猜VARCHAR支持比TEXT更好的索引。是否有可以施加的上限(50个字符?100个字符?)?
| c1 | c2 |
|----------+------------|
| bird | bird |
| vogel | bird |