Einige meiner indizierten Felder verwenden einen griechischen Analysator und ich möchte einen englischen Analysator für einige andere Felder verwenden. Mein Problem ist: Wie kann ich bei der Suche nach Ergebnissen (mit einem MultiFieldQueryParser) einen anderen Analysator pro Feld verwenden, so dass ein griechischer Analysator für griechisch indizierte Felder und ein englischer Analysator für englisch indizierte Felder verwendet wird?(HibernateSearch) MultiFieldQueryParser unterschiedlicher Analyzer pro Feld
3
A
Antwort
0
Sie könnten Ihre Abfrageparser wie folgt aufbauen:
Analyzer analyzer = fullTextSession.getSearchFactory().getAnalyzer(Item.class);
QueryParser parser = new MultiFieldQueryParser(Version.LUCENE_31, fields, analyzer);
, die die richtige Analysator verwenden würde, wie in den Anmerkungen Ihrer Item-Klasse definiert:
@Field(name = "greekTitle" analyzer = @Analyzer(impl = GreekAnalyzer.class))
public void getGreekTitle(){
//...
}
@Field(name = "englishTitle" analyzer = @Analyzer(impl = StandardAnalyzer.class))
public void getEnglishTitle(){
//...
}
0
Hier ist die Lösung, die ich gefunden habe. Bitte kommentieren.
transaction.begin();
PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(new StandardAnalyzer(Version.LUCENE_30));
wrapper.addAnalyzer("greekTitle", new GreekAnalyzer(Version.LUCENE_30));
wrapper.addAnalyzer("greekDescription", new GreekAnalyzer(Version.LUCENE_30));
String[] fields = {"greekTitle", "greekDescription", "englishTitle", "englishDescription"};
QueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_30, fields, wrapper);
queryParser.setDefaultOperator(QueryParser.AND_OPERATOR);
org.apache.lucene.search.Query query = queryParser.parse(QueryParser.escape(queryString));
javax.persistence.Query persistenceQuery =
fullTextEntityManager.createFullTextQuery(query, Item.class);
@SuppressWarnings("unchecked")
List<Item> result = persistenceQuery.getResultList();
transaction.commit();
return result;
Verwandte Themen
- 1. Boostfaktor in MultiFieldQueryParser
- 2. JPA HibernateSearch-Projektionen
- 3. Speichern Solr Analyzer Ergebnis in separaten Feld
- 4. Welches Feld hatte meinen Suchtext in Lucene bei Verwendung eines MultiFieldQueryParser?
- 5. Limit pro Feld
- 6. Verwenden von MultiFieldQueryParser
- 7. BeanWrapperFieldsetMapper Mapping PropertyEditor pro Feld Basis
- 8. Verwenden von Lucene Highlighter zusammen mit MultiFieldQueryParser
- 9. Mehrere GSON @ SerializedName pro Feld?
- 10. „MapperParsingException [Analyzer [Sekunde] nicht für Feld gefunden [Name]]“
- 11. Analyzer für Mapping in Elasticsearch Multi-Wort-, Multi-Feld Suche
- 12. So ändern Sie die Standardverbindung mit Lucene MultiFieldQueryParser
- 13. Express-Sitzung mit unterschiedlicher Cookie-Domain pro Anfrage?
- 14. Custom Analyzer elasticsearch-rails
- 15. Autoincrement-Feld pro Einheit in SQL Server?
- 16. RDL Aggregat Distinct Feld pro Gruppe
- 17. Kibana - Durchschnittliche Anzahl pro eindeutiges Feld
- 18. MultiFieldQueryParser entfernt Punkte aus dem Akronym
- 19. VTune Analyzer mit mingw
- 20. G1 Müllsammler Log Analyzer
- 21. PMD - Code Analyzer Warnungen
- 22. Lucene Analyzer und Punkte
- 23. Elasticsearch analyzer config
- 24. Regex Analyzer für PHP?
- 25. erfordern API Analyzer ClojureScript
- 26. Standard-Analyzer des Index
- 27. Elasticsearch Analyzer Vererbung
- 28. JavaScript Audio Spectrum Analyzer
- 29. MonoTouch Migration Analyzer
- 30. Elasticsearch.net Index-Einstellungen + Analyzer