Frage

Ich bin mit Hibernate Search und angewandt Lucene Indizierung auf einer Tabelle für ein Domain-Objekt. Ich mag jetzt Auswahl aus dieser Tabelle für Domänenobjekte machen und anzuwenden Filterung basierend auf mit anderer Tabelle verbinden, die nicht indiziert ist.

Für exampple habe ich Lose Tisch Auktion, die ich indiziert. Und ich habe Zitate Tabelle. Zitate haben Referenzen Es gibt viel zu versteigern.

Ich möchte vollständige Testsuche in AuctionLots Tabelle führen und abgestimmte Einheiten zurück, die keine Anführungszeichen haben. In gewöhnlichen SQL würde dies durch JOIN erreicht.

Aber in der Situation mit HibernateSearch, ich muss, um die volle Testsuche machen Domain-Objekte zu erhalten, aber ich weiß nicht, wie mit JOIN Filterung durchzuführen.

Hat jede Stelle eine Idee, wie dies zu tun?

War es hilfreich?

Lösung

Ich empfehle Filterung nicht, wenn die Indizes für Ihre Suche zu erstellen. Vor allem, weil es von Hibernate Search soweit nicht unterstützt wird, wie ich weiß, aber auch, weil es keinen Sinn macht. Was Sie sollten meiner Meinung nach tun, ist Index das Objekt nach dem Sie suchen möchten, einschließlich der Beziehungen zu den ‚Kind‘ Objekte. Ich nehme an, Ihr ActionLot Objekt eine Eins-zu-viele-Beziehung zu Ihren Zitaten Objekte hat. Mit der @IndexEmbedded Anmerkung, können Sie Ihre Zitate als Objekte markieren, die als gut indiziert werden sollen. Wenn Sie für die ActionLots ohne Anführungszeichen suchen, können Sie dies bei Ihrer Suche Filter entweder Einschränkungen in Ihrer Suchanfrage verwenden oder einen globalen Filter zu Ihrer Suche anwenden. Dies kann die Filteroptionen rel="nofollow zur Verfügung gestellt von Hibernate Search.

Andere Tipps

Unter Verwendung @IndexEmbedded oder ein ClassBridge ist auf jeden Fall der richtige Ansatz. Auch Ändern von Daten sollten kein Problem verursachen. Das ist, was die automatische Indizierung ist für. Sie müssen nicht neu indizieren alle Daten jedesmal, wenn eine Quote ändert. Unter Berufung auf dem Auto-Indizierung wird sichergestellt, dass nur die hinzugefügt / aktualisierten Daten werden neu indiziert. Als Hinweis - wenn Sie möchten, dass der Index für eine ActionLot Instanz aktualisiert werden, wenn die damit verbundenen Kursänderungen, können Sie eine bidirektionale Beziehung zu haben brauchen und verwenden @ConstainedIn

- Hardy

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