【发布时间】:2020-11-18 20:18:49
【问题描述】:
我正在使用 laravel,但如果需要可以使用原始 sql。
我有多个字段是 json 字段,在该 json 中有该语言的翻译数据。因此,例如 post 表具有字段标题,并且该标题是 {"en": "Title in english", "et": "Title in estonian"}
现在我需要进行全文搜索来搜索这些字段,对于某些列,我需要从所有语言中搜索术语,而不仅仅是从活动语言中搜索。
我正在使用 MariaDB 最新的稳定版。
如果我为全文搜索创建这些字段的索引,我可以很好地搜索,但搜索是区分大小写的。
如何使搜索不区分大小写? json 字段目前是 longtext 和 utf8mb4_bin,laravel 选择它们作为 json 字段。我知道 bin 是区分大小写的排序规则,但我还能放什么,以便通过翻译的 slug 查找记录的功能(例如)仍然存在。
在 laravel 中,可以像 ->where('slug->en','some-post-slug') 这样搜索。所以我需要保持 laravel json 字段功能完整。
我已经尝试了 2 天了,我需要一些外部输入。
【问题讨论】:
标签: php json laravel mariadb case-insensitive