2009-08-30 11 views
6

Czy wyszukiwanie pełnotekstowe MySql działa rozsądnie w językach innych niż łaciński? (Hebrajski, arabski, japoński ...)Czy funkcja wyszukiwania pełnotekstowego MySql działa rozsądnie w językach innych niż łaciński (hebrajski, arabski, japoński ...)

Dodawanie: Czy niektóre testy ... Ma pewne problemy z hebrajskim. Przykład: Nazwa מו ס ינזון wymawiane jest taka sama jak מו ש ינזון ale poszukiwania nie znajdzie innych, gdyż jest to częsty błąd pisowni w języku hebrajskim, wydaje się, będę musiał zrobić manipulowanie danymi, aby działał idealnie.

+0

Jaki jest Twój sortowania? – Eric

+0

utf8_unicode_ci –

+0

Tak, to nie przysłoni hebrajskiej semantyki. Jeśli był ustawiony na hebrajskie zestawienie, domyślam się, że tak. – Eric

Odpowiedz

2

Dopóki twój collation jest ustawiony prawidłowo, działa wspaniale.

Unicode będzie działać w większości z tego, oczywiście. Ale to nie tłumaczy bardzo dobrze znaków łacińskich (na przykład w holenderskim zestawieniu aa zostanie rozpoznane jako å).

1

Japanese i Chinese używać własnych symboli białych znaków, których nie rozumie MySQL.

Upewnij się, że słowa w tekstach, które zamierzasz indeksować, są oddzielone separatorami ASCII (spacje, przecinki itp.). Wszystko poza zasięgiem ASCII prawdopodobnie nie będzie działać.

Poza tym, trzeba prawdopodobnie naprawić ft_min_word_len: domyślnie MySQL nie będzie indeks słowa krótsze niż 4 znaków, a większość Japanese i Chinese słów.

W językach Cyrillic błędy związane z translatowaniem języków są dość powszechne.

Wszystkie litery z tej sekwencji: АВЕКМНОРСТуХ/ABEKMHOPCTyX są nieodróżnialne w większości czcionek.

Najgorsze z nich to cyrylica С/łacina C: oba te symbole znajdują się na jednym klawiszu na klawiaturze i nie różnią się w większości czcionek, ale mają różne kody.

MySQL również go nie złapie.

2

Chociaż wsparcie hebrajskie w MySQL jest ograniczone, Twój problem jest bardziej problemem osób używających nieprawidłowej pisowni, a następnie dysfunkcji serwera MySQL w tej perspektywie. Kiedy błędnie piszesz słowo w Google, wyświetli ci sugestię i możesz kliknąć tę sugestię, aby wyszukać to hasło.

Być może można zbudować program o tym samym działaniu, np. możesz utworzyć tabelę zawierającą 2 pola, z których jedno zawiera często błędnie napisane słowo, a drugie zawiera poprawną pisownię. Następnie można zbudować program, który znajdzie błędnie napisane słowo i wyświetli sugestię.

+0

Najczęstszym sposobem na wdrożenie tego jest użycie n-gramów – strum

0

Tak Wyszukiwanie pełnotekstowe MySQL działa dobrze dla Arabski.Wystarczy upewnić się, w miarę potrzeb:

  1. COLLATION = utf8_unicode_ci & CHARACTER SET = utf8. (Bazy danych, tabele i kolumny).
  2. Słowa kluczowe z 3 liter i więcej. To Bardzo Ważny dla arabskiego, ft_min_word_len = 3 (patrz show variables like "ft_%";)
  3. Sprawdź wersję MySQL (5.5 lub 5.6) i silnika (InnoDB czy MyISAM)
Powiązane problemy