2010-05-19 12 views
7

Estaba a punto de integrar la búsqueda basada en Sphinx en el sitio web, pero descubrí que no hay soporte integrado para la corrección ortográfica.Corrección ortográfica en Sphinx?

La gente en la web sugiere usar pspell u otras bibliotecas de terceros para hacer las cosas, pero el problema es que los datos que voy a buscar contienen términos "técnicos" como marcas, por lo tanto no lo hago t pensar que las bibliotecas comunes los incluirán.

Por otro lado, Xapian dice que tiene soporte de corrección ortográfica basado en los datos indexados, por lo que es exactamente lo que quiero. ¿Vale la pena usar Xapian en su lugar? Todavía estoy bastante confundido de qué motor de búsqueda de texto completo debería usar: Sphinx parece ser bastante bueno, pero le faltan algunas características interesantes de Xapian (¿o tal vez Lucene?), Mientras que parece que este último tiene una comunidad más pequeña y menos documentación.

Creo que puedo resolver el problema con palabras no presentes en el diccionario de pspell utilizando el personalizado para ello, pero no estoy seguro de si eso supondrá una pérdida notable de rendimiento. Voy a utilizar el sistema de búsqueda para la búsqueda de Spotlight (búsqueda por separado a través de ajax en cada letra ingresada) en un sitio web bastante popular, por lo que el rendimiento importa.

Idealmente, me gustaría hacer algunos campos como las marcas tienen más prioridad sobre el diccionario común, pero supongo que eso no es realmente importante ya que la mayoría de las marcas son bastante distintas de las otras palabras.

También son bienvenidas todas las sugerencias sobre el diseño general del motor de búsqueda de texto personalizado.

Gracias

+0

¿Consideró cambiar a Apache Solr? Es una plataforma de búsqueda construida sobre Lucene: http://lucene.apache.org/solr/features.html#Detailed+Features – nuqqsa

Respuesta

1

Esfinge le permite utilizar preprocesadores morfología y formas de palabra diccionarios. Ambos combinados podrían acercarlo más a lo que desea lograr. Puede leer más sobre ambos temas aquí: http://sphinxsearch.com/docs/manual-0.9.8.html#conf-morphology y más abajo.

Existen varios "sabores" de preprocesadores de morfología disponibles, elija el que mejor se adapte a sus necesidades. Los documentos también mencionan el proyecto Snowball, que se puede usar para agregar tallos en otros idiomas aparte del inglés y el ruso integrados, si es necesario. El sitio web del proyecto: http://snowball.tartarus.org/

Sphinx es un motor de búsqueda de texto completo muy rápido y no es probable que el uso de stemmers lo ralentice hasta el punto en que empiece a notarlo.

5

Sphinx no tiene corrector ortográfico incorporado, pero puede implementarse con Sphinx. Solo se puede encontrar un artículo sobre cómo hacerlo (por el autor de Sphinx) http://habrahabr.ru/blogs/sphinx/61807 (en ruso, puede usar GoogleTranslate para leer este artículo. Consulte la segunda parte del artículo llamado "Я понял, это намек.")

Implementé ese método recientemente - ¡funciona perfecto!

+0

El ruso de Google es mucho mejor que el mío, pero sigue siendo bastante inútil para fines de instrucción técnica. –

+0

@bemace, busque en el directorio misc/suggest en el tarball fuente. Da una idea básica de cómo funciona. – user187291

+0

¡Sí! Mi implementación de la función de sugerencia se basó en el contenido de la carpeta misc/suggest de sphinx tarball. @stereofrog gracias! – seriyPS

Cuestiones relacionadas