Domanda

Ad esempio, dire che ho il seguente aspetto:

Colori

  • Rosso (7825)
  • Orange (2343)
  • Green (843)
  • Blue (5412)

Nel mio database, colori sarebbe un tavolo e ogni colore avrebbero una chiave primaria e un nome / valore.

Quando l'indicizzazione con Solr / Lucene, in tutti gli esempi che ho visto, il valore è indicizzato e non la chiave primaria. Quindi, se a filtrare dal colore rosso, vorrei avere qualcosa di simile a quanto segue:

http://www.example.com/search?color=Red

mi chiedo, è saggio, invece indice di chiave primaria e recuperare i valori dal database quando la visualizzazione dei valori di sfaccettatura? Quindi vorrei invece ottenere qualcosa di simile a questo:

http://www.example.com/search?color=1

"1" che rappresenta la chiave primaria del colore rosso. Mi chiedo se devo prendere questo approccio in quanto i valori di molti dei miei sfaccettature cambiano spesso, ma le chiavi primarie rimanere lo stesso. Inoltre, l'indice è richiesto di essere in sincronia con il database.

La più avere alcuna esperienza con questo? Come pensi che ciò influirà sulle prestazioni?

Grazie in anticipo!

È stato utile?

Soluzione

Se vi aspettate che i vostri soggetti per cambiare frequentemente, è più facile per indicizzare gli ID, e quando si ottiene i risultati collaterali, fare una ricerca nel database per ottenere i nomi dei colori. In questo modo le modifiche ai colori non richiederebbero documenti interessati ad essere aggiornati nell'indice.

Nel nostro sistema, abbiamo indice di Lucene del ID invece del nome delle entità, proprio per le ragioni che hanno affermato. Inoltre, le nostre entità avere un gruppo di proprietà ad essi associati, che non sono indicizzati, in modo che avrebbe dovuto colpire il database per ottenere loro comunque.

Per quanto riguarda le prestazioni va, la sfaccettatura di ID non sarà visibilmente più lento o più veloce. Per quanto riguarda le ricerche nei database andare, non dovrebbe essere un grosso problema, soprattutto se si sta solo tirando giù decine di sfaccettature in un momento. È sempre possibile utilizzare la cache per velocizzare che fino se diventa un problema.

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