Sphinx configuración. Busquedas con y sin acentos y carácteres utf8
Para aquellos que usen Sphinx como motor de búsqueda en sus aplicaciones y que necesitan realizar búsquedas independientes de los acentos (buscar “jose” y encontrar “jose” y “josé”), también que sea capaz de buscar eñes, les vendrá muy bien la siguiente configuración del charset para español.
charset_table = 0..9, A..Z->a..z, _, -, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F,
U+C7->U+E7, U+E7,
U+D1->U+F1, U+F1,
U+DD->y, U+FD->y,
U+C0->a, U+C1->a, U+C2->a, U+C3->a, U+C4->a, U+C5->a,
U+E0->a, U+E1->a, U+E2->a, U+E3->a, U+E4->a, U+E5->a,
U+C8->e, U+C9->e, U+CA->e, U+CB->e,
U+E8->e, U+E9->e, U+EA->e, U+EB->e,
U+CC->i, U+CD->i, U+CE->i, U+CF->i,
U+EC->i, U+ED->i, U+EE->i, U+EF->i,
U+D2->o, U+D3->o, U+D4->o, U+D5->o, U+D6->o,
U+F2->o, U+F3->o, U+F4->o, U+F5->o, U+F6->o,
U+D9->u, U+DA->u, U+DB->u, U+DC->u,
U+F9->u, U+FA->u, U+FB->u, U+FC->u
charset_type = utf-8
ejemplo de uno de mis index en Sphinx
index mi_indice
{
source = mi_indice
path = /path/completo_a_indice/mi_indice
docinfo = extern
charset_table = 0..9, A..Z->a..z, _, -, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F,
U+C7->U+E7, U+E7,
U+D1->U+F1, U+F1,
U+DD->y, U+FD->y,
U+C0->a, U+C1->a, U+C2->a, U+C3->a, U+C4->a, U+C5->a,
U+E0->a, U+E1->a, U+E2->a, U+E3->a, U+E4->a, U+E5->a,
U+C8->e, U+C9->e, U+CA->e, U+CB->e,
U+E8->e, U+E9->e, U+EA->e, U+EB->e,
U+CC->i, U+CD->i, U+CE->i, U+CF->i,
U+EC->i, U+ED->i, U+EE->i, U+EF->i,
U+D2->o, U+D3->o, U+D4->o, U+D5->o, U+D6->o,
U+F2->o, U+F3->o, U+F4->o, U+F5->o, U+F6->o,
U+D9->u, U+DA->u, U+DB->u, U+DC->u,
U+F9->u, U+FA->u, U+FB->u, U+FC->u
charset_type = utf-8
stopwords =/path/completo_a_indice/stopwords.txt
}
ACTUALIZACIÓN (05-04-2010)
Después de mucho pelearme con los acentos y las eñes con Sphinx he conseguido optimizar y dar con el charset adecuado.
charset_table = 0..9, A..Z->a..z, a..z,
U+DD->y, U+FD->y,
U+D1->n, U+F1->n,
U+C0->a, U+C1->a, U+C2->a, U+C3->a, U+C4->a, U+C5->a,
U+E0->a, U+E1->a, U+E2->a, U+E3->a, U+E4->a, U+E5->a,
U+C8->e, U+C9->e, U+CA->e, U+CB->e,
U+E8->e, U+E9->e, U+EA->e, U+EB->e,
U+CC->i, U+CD->i, U+CE->i, U+CF->i,
U+EC->i, U+ED->i, U+EE->i, U+EF->i,
U+D2->o, U+D3->o, U+D4->o, U+D5->o, U+D6->o,
U+F2->o, U+F3->o, U+F4->o, U+F5->o, U+F6->o,
U+D9->u, U+DA->u, U+DB->u, U+DC->u,
U+F9->u, U+FA->u, U+FB->u, U+FC->u, U+0027
Ejemplo de uno de mis index
index mi_index
{
source = mi_source
path = /path/a/mi/indice/indices/mi_index
docinfo = extern
mlock = 0
charset_type = utf-8
charset_table = 0..9, A..Z->a..z, a..z,
U+DD->y, U+FD->y,
U+D1->n, U+F1->n,
U+C0->a, U+C1->a, U+C2->a, U+C3->a, U+C4->a, U+C5->a,
U+E0->a, U+E1->a, U+E2->a, U+E3->a, U+E4->a, U+E5->a,
U+C8->e, U+C9->e, U+CA->e, U+CB->e,
U+E8->e, U+E9->e, U+EA->e, U+EB->e,
U+CC->i, U+CD->i, U+CE->i, U+CF->i,
U+EC->i, U+ED->i, U+EE->i, U+EF->i,
U+D2->o, U+D3->o, U+D4->o, U+D5->o, U+D6->o,
U+F2->o, U+F3->o, U+F4->o, U+F5->o, U+F6->o,
U+D9->u, U+DA->u, U+DB->u, U+DC->u,
U+F9->u, U+FA->u, U+FB->u, U+FC->u, U+0027
min_word_len = 1
html_strip = 0
stopwords =/path/a/stopwords/stopwords.txt
}
es muy importante tener las tablas y los datos en las tablas en UTF8 y en el source añadir la siguiente instrucción.
sql_query_pre = SET NAMES utf8
Tags de búsquedas:
busquedas con y sin acentos wordpress, luxury sphinx
Posts Relacionados:
- Indexar las búsquedas full-text con Sphinx. Tutorial como usar Sphinx ¿Cómo realizar búsquedas full-text en una tabla con miles o millones de registros, sin que el mysql falle y el site siga siendo relevante y no se caiga? La solución...
- lista de stopwords en español para sphinx Los stopwords de Sphinx son palabras que no queremos indexar en nuestro motor de búsqueda. El formato por defecto del archivo de stopwords.txt es una lista de palabras separadas por...
- cakephp codificacion en utf8 Cuando tenéis una aplicación en cakephp y todo está en utf8 es muy importante especificar en la configuración de base de datos que se conecte en utf8 porque en cakephp...
- Problemas codificacion web. Configurar codificación utf8 php, mysql y html Después de muchos años y grandes problemas de codificación con php y mysql, puedo afirmar que tengo, bastante controlado el problema con las codificaciones. Bueno por lo menos identificado. Desgraciadamente...
- Como prevenir que CKEditor guarde los caracteres en html entities Cuando se usa CKEditor por defecto guarda los acentos, tildes, eñes, a sus caracteres html. Por ejemplo si introducimos áéíóúö?ü? CKEditor guarda sus respectivos html entities <p>áéíóúö?ü?</p> Cuando lo que...

RSS Feed
Me has salvado la vida, man. Me estaba volviendo loco probando charset tables. pero hasta que no vi en tu post la entrada sobre set names utf8 no logre nada.
Me alegro de que te haya ayudado!!
Un saludo!
Hola,
No entiendo porque incluyes en la tabla de códigos de caracteres los siguientes:
U+410..U+42F y U+430..U+44F
Según he visto en una web son caracteres pertenecientes al alfabeto cirílico.
Aquí se pueden ver:
http://www.utf8-chartable.de/unicode-utf8-table.pl?start=1024
Saludos
Pues eso es porque se me ha “colado”. He incluido la configuración standar de los charset utf8 que viene en la web de Sphinx.
http://www.sphinxsearch.com/docs/current.html#conf-charset-type
que son para ingles y Ruso (y lenguas de origen cirilico). Pero que vamos no nos sirve para nada, a menos que quiera sacar una versión de mi web en Ruso.
Pero tampoco me molesta por estar ahí!!