Frage

Zum Beispiel, sagen, dass ich die folgende Facette haben:

Farben

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

In meiner Datenbank würden Farben eine Tabelle sein und jede Farbe einen Primärschlüssel und einen Namen / Wert haben würde.

Wenn Sie mit Solr / Lucene Indexierung, in allen Beispielen die ich gesehen habe, wird der Wert indiziert und nicht den Primärschlüssel. Also, wenn ich Filter durch die Farbe rot, würde ich so etwas wie die folgende bekommen:

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

Ich frage mich, ist es ratsam, stattdessen Index der Primärschlüssel und die Werte aus der Datenbank abgerufen werden, wenn die Facettenwerte angezeigt wird? Also ich stattdessen so etwas wie dies bekommen würde:

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

„1“, die die Primärschlüssel der Farbe rot. Ich frage mich, ob ich diesen Ansatz sollte, da die Werte vieler meiner Facetten häufig ändern, aber die Primärschlüssel gleich bleiben. Außerdem wird der Index synchron sein erforderlich, um mit der Datenbank.

hat mehr Erfahrung mit diesem? Wie denken Sie, diese Leistung beeinflussen?

Vielen Dank im Voraus!

War es hilfreich?

Lösung

Wenn Sie Ihre Einheiten erwarten häufig zu ändern, ist es einfacher zu indizieren die IDs, und wenn Sie Ihre Facette Ergebnisse zu erhalten, führen Sie eine Suche in der Datenbank die Namen der Farben zu erhalten. Auf diese Weise Änderungen an Farben würden betroffenen Dokumente im Index aktualisiert werden, nicht erforderlich.

In unserem System können wir Index der Lucene die ID anstelle des Namens der Entitäten, genau wegen der Gründe, die Sie angegeben. Auch unsere Einheiten haben eine Reihe von Eigenschaften mit ihnen verbunden sind, die nicht indiziert werden, so würden wir sie haben schlagen sowieso die Datenbank zu erhalten.

Soweit die Leistung geht, wird die Facettierung von IDs nicht spürbar langsamer oder schneller. Was die Datenbank-Lookups gehen, soll es keine große Sache sein, besonders wenn man nur zehn Facetten zu einer Zeit, nach unten ist zu ziehen. Sie können immer Caching Geschwindigkeit verwenden, dass, wenn es ein Problem wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top