2016-07-05 24 views
0

Ich kenne die Hibernate Search 5.5 Reference Guide beschreibt die Phrase Abfragen im Abschnitt 5.1.2.4. Phrasenabfragen, aber diese Art von Phrasenabfragen erlauben nur Slop-Faktoren anstelle der regulären Ausdrücke.Gibt es eine Möglichkeit, nach Phrasen zu suchen und reguläre Ausdrücke in der Hibernate-Suche zu verwenden?

Gibt es eine Möglichkeit, in der Hibernate Search nach Phrasen zu suchen und die regulären Ausdrücke zu verwenden? Vielen Dank.

+0

Ich glaube nicht, dass HQL keine Out-of-the-Box-Unterstützung für reguläre Ausdrücke hat ([ref] (http://stackoverflow.com/questions/14245453/hibernate-regex)), aber Sie können beliebige verwenden Regex-Funktionalität, die Ihre spezielle DB hat ([ref] (http://stackoverflow.com/questions/17702544/hibernate-regexp-mysql)). –

+0

Hallo Tim. Danke für Ihre Antwort und Referenzen. Jetzt verwende ich Hibernate Search und Lucene, um die Volltextsuche durchzuführen. Es ist das erste Mal, dass ich sie benutze und ich habe keine Möglichkeit gefunden, HQL zusammen mit Hibernate Search und Lucene zu verwenden. Es scheint, dass Hibernate Search und Lucene einige API-Methoden bereitstellen und wir sie nur für die Suche verwenden. Es scheint keine Schnittstelle in ihnen zu geben, die es ermöglicht, HQL-Anweisungen wie normale Hibernate-Abfragen zu übergeben. Bitte korrigieren Sie mich, wenn ich falsch liege. Vielen Dank. –

+0

@TimBiegeleisen 'Hibernate Search' ist nicht mit HQL verwandt, es ist eine viel leistungsfähigere Erweiterung der Abfragefunktionen, die Sie über SQL oder HQL erhalten können. Sieht so aus, als wüsstest du nicht was es ist, du verpasst eine Menge mächtiger Fähigkeiten! Ich würde vorschlagen, sich den verlinkten Nachschlagewerk anzuschauen. – Sanne

Antwort

3

Abschnitt 5.1.2.4 zeigt ein einfaches Beispiel mit Phrasenabfragen unter Verwendung der Hibernate Search DSL.

Wenn Sie den DSL Sie Hilfe bekommen zu verwenden, wie zum Beispiel die automatische Typumwandlung, es ist so der vorgeschlagene Weg für die meisten einfachen Anwendungsfall jedoch können Sie den DSL umgehen und jede Lucene Query die Lucene-APIs verwenden, erstellen und die Query verwenden Instanz wie es mit dem DQL gebaut wurde.

Für Regex-Abfragen siehe org.apache.lucene.search.RegexpQuery.

Alle Apache Lucene-Abfrageexemplare sind mit der Hibernate-Suche kompatibel.