support pinyin search

This commit is contained in:
Timi
2026-08-21 13:51:26 +08:00
parent a523df6a07
commit acc3f05f12
10 changed files with 248 additions and 0 deletions
@@ -0,0 +1,15 @@
ALTER TABLE `multilingual`
ADD COLUMN `zh_cn_pinyin_full` TEXT NULL COMMENT '简体中文全拼' AFTER `zh_cn`,
ADD COLUMN `zh_cn_pinyin_initial` TEXT NULL COMMENT '简体中文拼音首字母' AFTER `zh_cn_pinyin_full`,
ADD COLUMN `zh_cn_pinyin_mixed` TEXT NULL COMMENT '简体中文混合拼音' AFTER `zh_cn_pinyin_initial`,
ADD KEY `idx_multilingual_zh_cn_pinyin_full` (`zh_cn_pinyin_full`(128)),
ADD KEY `idx_multilingual_zh_cn_pinyin_initial` (`zh_cn_pinyin_initial`(128)),
ADD KEY `idx_multilingual_zh_cn_pinyin_mixed` (`zh_cn_pinyin_mixed`(128));
ALTER TABLE `gao_customer`
ADD COLUMN `name_pinyin_full` VARCHAR(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '姓名全拼' AFTER `name`,
ADD COLUMN `name_pinyin_initial` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '姓名拼音首字母' AFTER `name_pinyin_full`,
ADD COLUMN `name_pinyin_mixed` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '姓名混合拼音' AFTER `name_pinyin_initial`,
ADD KEY `idx_gao_customer_store_name_pinyin_full` (`store_id`, `deleted_at`, `name_pinyin_full`(128)),
ADD KEY `idx_gao_customer_store_name_pinyin_initial` (`store_id`, `deleted_at`, `name_pinyin_initial`),
ADD KEY `idx_gao_customer_store_name_pinyin_mixed` (`store_id`, `deleted_at`, `name_pinyin_mixed`);
@@ -32,6 +32,9 @@
OR `m`.`ja_jp` LIKE CONCAT('%', #{keyword}, '%')
OR `m`.`de_de` LIKE CONCAT('%', #{keyword}, '%')
OR `m`.`ko_kr` LIKE CONCAT('%', #{keyword}, '%')
OR `m`.`zh_cn_pinyin_full` LIKE CONCAT(#{keyword}, '%')
OR `m`.`zh_cn_pinyin_initial` LIKE CONCAT(#{keyword}, '%')
OR `m`.`zh_cn_pinyin_mixed` LIKE CONCAT(#{keyword}, '%')
)
</if>
AND `t`.`deleted_at` IS NULL
@@ -29,6 +29,9 @@
`c`.`code` LIKE CONCAT('%', #{keyword}, '%')
OR `c`.`name` LIKE CONCAT('%', #{keyword}, '%')
OR `c`.`telephone` LIKE CONCAT('%', #{keyword}, '%')
OR `c`.`name_pinyin_full` LIKE CONCAT(#{keyword}, '%')
OR `c`.`name_pinyin_initial` LIKE CONCAT(#{keyword}, '%')
OR `c`.`name_pinyin_mixed` LIKE CONCAT(#{keyword}, '%')
)
</if>
<if test="tagIdList != null and !tagIdList.isEmpty()">