Domanda

Sto costruendo un motore di ricerca, e ho un ID non così unico per un sacco di nomi diversi ... Quindi, per esempio, ci potrebbe essere un id di B0051QVF7A che avrebbe molteplici nomi come "Kindle" "Amazon Kindle " "Amazon Kindle 3G" "Kindle Ebook Reader" "Nuovo Kindle", ecc.

Il problema, e la domanda che ho, è che io sto cercando di entrare in questo i dati da un DB di 11 ish milioni di righe. ciascun viene letto uno alla volta. Così io non ho tutti i nomi di ogni ID. Io sono l'aggiunta di nuovi documenti alla lista ogni volta.

Quello che sto cercando di scoprire è come faccio ad aggiungere nomi a un documento esistente? Se sto leggendo la documentazione correttamente, sembra di sovrascrivere l'intero documento, non aggiunge informazioni extra per il campo ... voglio solo aggiungere un nome in più per il campo multivalore documento ...

So che questo potrebbe causare alcuni "problemi" strane e meravigliose se un nome viene rimosso (nell'esempio di cui sopra, "Nuovo Kindle" potrebbe essere rimosso quando un più nuovo Kindle viene rilasciato), ma sto pensando di ricreare l'indice di ogni ora e ancora una volta, per cancellare le questioni del genere (una volta al mese o giù di lì. la sua presa di circa 45 minuti attualmente per creare l'indice).

Quindi, come si fa ad aggiungere un valore a un campo multivalore in solr per un documento esistente?

È stato utile?

Soluzione

Since according to the question linked to by @Mauricio Scheffer's comment... Solr does not currently support updating a single field value in an existing document. I see that there might be a couple of options here...

  1. In your process that is pulling data from the database, when it finds a new name, it will need to pull all fields for the existing document from Solr, add the new value and resend the complete document to Solr (you may already be doing this).
  2. Add some additional logic to your code that reads from the database, to gather all of the unique names for each document prior to inserting documents into the index. However, given that you have ~11 million records, there could be a resource constraint that would prevent this from being feasible.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top