2009-08-30 19 views
6

¿La búsqueda de texto completo de MySql funciona razonablemente con idiomas que no sean latinos? (Hebreo, árabe, japonés ...)¿La búsqueda de texto completo de MySql funciona razonablemente con idiomas no latinos (hebreo, árabe, japonés ...)

Adición: Hice algunas pruebas ... Tiene algunos problemas con el hebreo. Ejemplo: El nombre מו ס ינזון se pronuncia igual que מו ש ינזון pero buscando no se encuentra el otro, ya que esto es un error ortográfico común en hebreo, parece que voy a tener que hacer algo de manipulación de datos para que funcione perfectamente.

+0

¿Cuál es su cotejo? – Eric

+0

utf8_unicode_ci –

+0

Sí, eso no va a atrapar la semántica hebrea. Si fuera una intercalación hebrea, supongo que sí. – Eric

Respuesta

2

Siempre que su collation esté configurado correctamente, funciona espléndidamente.

Unicode funcionará para la mayor parte de esto, por supuesto. Pero eso realmente no les traduce muy bien los caracteres latinos (por ejemplo, en una colación holandesa, aa se reconocerá como å).

1

Sí, sin embargo, compruebe qué es stopwords.

1

Japanese y Chinese utilizan sus propios símbolos de espacio en blanco que MySQL no comprende.

Asegúrese de que las palabras en los textos que va a indexar estén separadas por separadores ASCII (espacios, comas, etc.). Cualquier cosa fuera del rango ASCII probablemente no funcione.

Además, es probable que necesite para arreglar ft_min_word_len: por defecto, MySQL no se lee palabras clave más cortas que 4 caracteres, y la mayoría de Japanese y Chinese palabras.

En Cyrillic errores de traducción de idiomas son bastante comunes.

Todas las letras de esta secuencia: АВЕКМНОРСТуХ/ABEKMHOPCTyX son indistinguibles en la mayoría de las fuentes.

El peor de ellos es cirílico С/latín C: ambos símbolos se encuentran en una tecla del teclado y no difieren en absoluto en la mayoría de las fuentes, pero tienen diferentes códigos.

MySQL tampoco lo captará.

2

Aunque el soporte en hebreo en MySQL es limitado, su problema es más un problema de personas que usan ortografía incorrecta, y luego una disfunción del servidor MySQL en esta perspectiva. Cuando escribe mal una palabra en Google, le mostrará una sugerencia y puede hacer clic en esa sugerencia para buscar ese término.

Quizás podría compilar algún programa que tenga el mismo comportamiento, p. podría crear una tabla que tenga 2 campos, uno que contenga la palabra comúnmente mal escrita y la otra que contenga la ortografía correcta. Luego puede crear un programa que encuentre la palabra mal escrita y muestre la sugerencia.

+0

La forma habitual de implementar esto es usar n-grams – strum

0

MySQL búsqueda de texto completo funciona bien para árabe.Sólo asegúrese de lo siguiente cuando sea necesario:

  1. COLLATION = utf8_unicode_ci & CHARACTER SET = utf8. (Bases de datos, tablas y columnas).
  2. Palabras de índice de 3 letras y más. Esto es muy importante para árabe, ft_min_word_len = 3 (ver show variables like "ft_%";)
  3. comprobar la versión de MySQL (5.5 o 5.6), y el motor (InnoDB o myisam)
Cuestiones relacionadas