WARNING: duplicate document ids found – Identificadores de 32 o 64 bits en Sphinx
En el caso de realizar una indexación sobre una tabla muy grande se puede producir un WARNING sobre la primary key: “duplicate document ids found“. Esto puede indicar que el sphinx esta usando identificadores de 32 bits aúnque el binario sea de 64 bits.
El error en el indexer sería:
indexing index 'wp_posts'... collected 1302601 docs, 43.5 MB sorted 7.6 Mhits, 100.0% done WARNING: duplicate document ids found
Incluso si el binario es de 64 bits:
# file /usr/local/bin/searchd /usr/local/bin/searchd: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped # file /usr/local/bin/indexer /usr/local/bin/indexer: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
El sphinx internamente sigue usando 32 bits para los identificadores. Para cambiar de 32 a 64 bits deberemos recompilar con la opción –enable-id64
# ./configure --help | grep 64 --enable-id64 use 64-bit document and word IDs (default is no)
Deberemos tener en cuenta que al recompliar también deberemos reindexar, ya que los índices ya generados dejaran de ser validos.
Seguramente se trata de algún tema de compatibilidad con la versión de 32 bits, pero resulta curioso como por defecto se compila con 32 bits aunque tengas el sistema a 64 bits. Me parecería más lógico que pudieras compilar la versión de 64 bits usando IDs de 32, pero que se tuviera que definir explicitamente.
Relacionados
Imprimir
Deja un comentario: