1

我在一个多语言网站(目前只有英语和土耳其语)中进行搜索。

只要访问者使用正确的语言字符,搜索出来就会得到正确的结果。

例如

  • 对于单词“Moudle”(英语),类似 sql 查询的子句就像“%Moudle%”,它工作正常。
  • 对于单词“modül”(土耳其语),类似 sql 的子句就像“%modül%”,它工作正常。

我的问题是,对于土耳其语,如果我使用“modul”而不是“modül”,它就不起作用。只是因为“ü”。

即使我使用英语中相同的对应字符而不是原始字符,有什么方法可以从数据库中获取结果?


表的结构是

CREATE TABLE IF NOT EXISTS post_lang (
  id bigint(20) NOT NULL AUTO_INCREMENT,
  post_id bigint(20) NOT NULL,
  ln enum('en','tr') NOT NULL,
  title text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (id)
);
INSERT INTO post_lang (id, post_id, ln, title, content, doc) VALUES
(1, 1, 'en', 'How can I create a new module?'),
(2, 1, 'tr', 'Nasıl yeni bir modül yaratırım?');

4

1 回答 1

4

您可以创建一个字段,说明normalizedText您将只存储不带重音符号的字符,遵循您的逻辑。

因此,您可以使用不包含重音符号且结果一致的字符串在您的 normalizedText 上运行搜索。

您可以使用方便的 php wordpress 函数 ( remove_accents ) 将重音字符转换为非重音字符

于 2012-06-15T10:47:06.120 回答