Hola, estoy tratando de montar un motor de busquedas con sphinxsearch y tengo algunos problemas. El primero es que no me deja usar el id
de mi entidad como primer atributo. Si lo pongo de primero me dice que no encuentra la columna id
.
sql_query = SELECT autor_id ,id, titulo, fecha, contenido FROM noticia;
Otro problema es que siempre me da error de id
duplidado, pasa mi config
source noticia { type = pgsql sql_host = localhost sql_user = postgres sql_pass = ****** sql_db = tesis sql_port = 5432 sql_query = SELECT autor_id ,id, titulo, fecha, contenido FROM noticia; sql_attr_uint = id sql_attr_string = contenido sql_attr_timestamp = fecha sql_query_info = SELECT * FROM noticia WHERE id=$id } index indexnoticia { source = noticia path = /var/www/html/sphinx/noticia/index docinfo = extern charset_type = sbcs } indexer { mem_limit = 32M } searchd { listen = 127.0.0.1 port = 9314 log = /var/log/sphinxsearch/searchd.log query_log = /var/log/sphinxsearch/query.log read_timeout = 5 client_timeout = 300 max_children = 30 pid_file = /var/run/sphinxsearch/searchd.pid seamless_rotate = 1 preopen_indexes = 2 unlink_old = 1 crash_log_path = /var/log/sphinxsearch/cras }
:) Ayuda !
Respuestas
La principal restricción de Sphinx en cuanto a los documentos indexados es la que se explica en esta sección de su documentación (las mayúsculas son cosa suya):
ALL DOCUMENT IDS MUST BE UNIQUE UNSIGNED NON-ZERO INTEGER NUMBERS (32-BIT OR 64-BIT, DEPENDING ON BUILD TIME SETTINGS).
¿Es posible que la columna id
que está usando no sea un número entero único, positivo y distinto de cero?
Por otra parte, en esta pregunta del foro de SphinxSearch hablan sobre la posibilidad de usar la función group_concat()
para evitar el problema de los id
duplicados. No se si podrías aplicarlo en tu caso.
@javiereguiluz