Pregunta

Hemos decidido utilizar mongodb por alguna aplicación web (en lugar de MySQL), pero queremos quedarnos con la esfinge para la indexación / búsqueda todos los datos almacenados en MongoDB. como el objeto mongodb-id es un hash por defecto - y que quiere quedarse con esto - ahora hay un problema en el uso de la esfinge. Como se dice en la documentación de la esfinge:

  

Todas las ID de documento debe ser único distinto de cero NÚMEROS entero sin signo   (32 bits o 64 bits, dependiendo de la configuración BUILD tiempo).

así que ... ¿cuál es la mejor manera de resolver este problema ... ¿cómo podemos mapear el objeto mongodb-ID a un número entero distinto de cero (y viceversa)?

Actualizar

La respuesta de Casey es la dirección correcta para investigar, sin embargo, en que resulta atributos de cadena están en la corriente dev-versión sólo está disponible para la fuente de datos SQL. para xmlpipe que es necesario aplicar un parche a la fuente de pago. más información sobre esto se puede encontrar en el esfinge foro .

¿Fue útil?

Solución

No se puede utilizar el ID de objeto como un documento de identificación Sphinx - mongodb identificaciones de objetos son más grandes que el tamaño máximo de los ID de documento de Sphinx

.

En su lugar, se puede incrementar un identificador único al generar el XML que Sphinx va a procesar (estoy suponiendo que está utilizando xmlpipe para obtener sus datos Mongo en Sphinx?) Y almacene el objeto ID MongoDB como un atributo de cadena de Esfinge.

Usted necesita la última versión de desarrollo de la esfinge de hacer esto - ver mi respuesta a esta pregunta para un poco más de detalle: Esfinge sin necesidad de utilizar un identificador de aUTO_INCREMENT

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top