1

多言語サイト(現在は英語とトルコ語のみ)で検索に取り組んでいます。

訪問者が正しい言語文字を使用している限り、検索結果は正しい結果になります。

例えば

  • 単語「Moudle」(英語)のSQLクエリの句は「%Moudle%」のようなもので、正常に機能します。
  • sqlの句のような単語「modül」(トルコ語)は「%modül%」のようなもので、正常に機能します。

私の問題は、トルコ語で「modül」ではなく「modul」を使用すると、機能しないことです。「ü」のためだけに。

オリジナルの代わりに英語の同じ対応文字を使用している場合でも、データベースから結果を取得する方法はありますか?


テーブルの構造は

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ワードプレス関数(remove_accents )を使用できます

于 2012-06-15T10:47:06.120 に答える