Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Sphinx me da error de ID duplicado

6 de junio de 2015

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

#1

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

7 junio 2015, 16:47