Domanda

Abbiamo deciso di utilizzare MongoDB per alcune applicazioni web (invece di mysql), ma vogliamo rimanere con sfinge per l'indicizzazione / ricerca tutti i dati memorizzati in MongoDB. come MongoDB ID dell'oggetto è un hash per default - e vogliamo stare con questo - ora c'è un problema nel usando sfinge. Come si dice nella documentazione sfinge:

  

Tutti gli ID documento deve essere unico UNSIGNED diverso da zero numeri interi   (32-bit o 64-bit, a seconda delle impostazioni tempo di costruzione).

così ... qual è il modo migliore per risolvere questo problema ... come possiamo mappare il MongoDB ID dell'oggetto ad un non-zero intero (e viceversa)?

Aggiorna

La risposta di Casey è la direzione giusta di esaminare, anche se a si scopre attributi stringa sono in dev-attuale versione disponibile solo per l'origine dati SQL. per xmlpipe è necessario applicare una patch alla fonte cassa. maggiori informazioni su questo si possono trovare nel sfinge forum .

È stato utile?

Soluzione

Non è possibile utilizzare l'ID oggetto come un documento di identità Sphinx - MongoDB opporsi ID sono più grande della dimensione massima di ID dei documenti di Sphinx

.

Al contrario, si potrebbe incrementare un ID univoco durante la generazione del XML che Sfinge sta per processare (sto supponendo che si sta utilizzando xmlpipe per ottenere i dati in Mongo Sfinge?) E memorizzare l'ID oggetto MongoDB come un attributo di stringa in Sfinge.

È necessaria l'ultima versione di sviluppo di Sfinge per fare questo - vedere la mia risposta a questa domanda per un po 'più in dettaglio: Sphinx senza utilizzare un auto_increment id

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top