Pregunta

Finalmente, estoy creando un sitio web en tres idiomas: inglés, ruso y chino. Espero que si uso UTF-8 en la aplicación y la base de datos, no haya ningún problema con la entrada-salida (¿lo habrá?)

Pero la parte más aterradora es una búsqueda. Debería ser lo suficientemente genial. Debe ser de texto completo, debe indexarse, etc. Espero que comprenda la morfología, utilice la derivación, etc.

Primero, miré Zend_Search_Lucene, pero como me di cuenta de http : //framework.zend.com/issues/browse/ZF/component/10021 tiene problemas con el chino. :(

Ahora estoy pensando en Sphinx. Es compatible tanto con el inglés como con el ruso. No estoy seguro de qué tan bueno es con el chino y no tengo idea de lo difícil que será para mí agregarle soporte. http://www.sphinxsearch.com/forum/view.html?id= 1554 es un lado positivo, pero, como no soy un usuario experimentado de Sphinx, no creo entender lo que se dice allí.


Entonces,

¿Alguien tiene alguna experiencia en esa búsqueda 'independiente del idioma' y puede compartirla conmigo, por favor?

y puedes darme algo para probar la búsqueda. Como hablante nativo de ruso con algunos conocimientos básicos de inglés, puedo probar las búsquedas en ruso e inglés por mí mismo, pero ni siquiera sé qué partes de estas fotos chinas son palabras. ¡Por favor, dame algunas cadenas chinas para ponerlas en el índice y algunas consultas con los resultados esperados!

¿Fue útil?

Solución

Los caracteres ideográficos en idiomas como el chino o el japonés requieren dos posiciones de caracteres terminales, por lo que tendrá problemas con UTF8 y debería utilizar UTF16 en su lugar .

Aparte de eso, cualquier motor de búsqueda que admita UTF16 y sus requisitos (por ejemplo, stemming) debería funcionar bien, es decir, si le gusta Sphinx, ¡adelante!

Otros consejos

De los documentos de Xapian:

Xapian usa los algoritmos de derivación de bola de nieve. En la actualidad, admiten danés, holandés, inglés, finlandés, francés, alemán, húngaro, italiano, noruego, portugués, rumano, ruso, español, sueco y turco. También hay implementaciones de la derivación inglesa de Lovins, la derivación original inglesa de Porter, la derivación holandesa Kraaij-Pohlmann y una variación de la derivación alemana que normaliza las diéresis.

o algunos de los idiomas del mundo, como el chino, por ejemplo, el concepto de derivación no es aplicable, pero ciertamente es significativo para los muchos idiomas del grupo indoeuropeo.

http://xapian.org/docs/stemming.html

¿No es suficiente la Búsqueda de usuarios de Google para sus necesidades? ¿Qué es exactamente lo que no te gusta?

Mantengo un proyecto de código abierto basado en sphinx para proporcionar un mejor soporte chino. Puede echar un vistazo a http://code.google.com/p/sphinx- para chino / . No sé mucho sobre ruso, pero no sería un problema si las palabras en ruso están separadas por espacios. Solo déjame mensajes si tienes algún problema

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top