2010-11-18 12 views
1

Wenn ich Objekte in meiner Anwendung indexiere (mit Hibernate Search und Lucene) möchte ich einige der Attribute der Assoziationen des Objekts im Index speichern. Ich muss sie im Index speichern, weil ich diese Attribute schnell abrufen muss. Was ist der beste Ansatz dafür?Wie indexiert man Attribute aus Assoziationen?

  1. Speichern Sie die Objektbeziehungen in Lucene. Dies scheint der einfachste und schnellste Ansatz zu sein.
  2. Speichern Sie die Objektbeziehungen in db
  3. Speichern Sie die Objektbeziehungen in so etwas wie einem schnellen Schlüssel-Wert-Speicher trennen

Alle anderen Ideen, wie ich eine Reihe von Attributen aus einer Teilmenge von Objekten speichern aus das Objektdiagramm meiner App? Welche Lösung sollte ich verwenden?

Antwort

0

Wenn Sie die Attribute häufig benötigen, wenn ein Dokument abgerufen wird, würde ich sie in den Index stecken. Wenn ihre Verwendung selten ist, würde ich Option 2 oder 3 verwenden. Wenn Sie wissen, wann Sie sie benötigen und wann nicht, können Sie mit FieldSelector steuern, ob (oder welche) Attribute geladen werden.

Ein weiterer zu berücksichtigender Faktor ist die Kardinalität der Attribute und ob Sie ihre Werte in Abfragen oder Ranking-Algorithmen einbeziehen möchten. Wenn die Antwort ja ist, dann ist es viel besser, sie in den Lucene-Index einzutragen.

Verwandte Themen