インデックス付きフィールドの一部にはギリシャ語のアナライザーが使用されており、他のフィールドには英語のアナライザーを使用したいと考えています。私の問題は次のとおりです:現在、MultiFieldQueryParserを使用して結果を検索するとき、フィールドごとに異なるアナライザを使用するとギリシャ語のアナライザがギリシャ語のフィールドに使用され、英語のアナライザは英語のフィールドに使用されます。(HibernateSearch)フィールドごとに異なるアナライザーMultiFieldQueryParser
3
A
答えて
0
あなたはこのようなあなたのクエリパーサーを構築することができます:あなたのItemクラスの注釈で定義されているように、適切なアナライザを使用することになり
Analyzer analyzer = fullTextSession.getSearchFactory().getAnalyzer(Item.class);
QueryParser parser = new MultiFieldQueryParser(Version.LUCENE_31, fields, analyzer);
:
@Field(name = "greekTitle" analyzer = @Analyzer(impl = GreekAnalyzer.class))
public void getGreekTitle(){
//...
}
@Field(name = "englishTitle" analyzer = @Analyzer(impl = StandardAnalyzer.class))
public void getEnglishTitle(){
//...
}
0
ここに私が見つけた解決策があります。コメントしてください。
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;
関連する問題
- 1. コレクションビューセルオートレイアウトセルごとに異なる高さ
- 2. ボタンごとに異なるマップマーカー
- 3. Googleマップ:マーカーごとに異なるCustomInfowindow
- 4. ボタンごとに異なる指示
- 5. 異なるファイルごとにカスタムコミットメッセージPhpStorm + GitHub
- 6. UIViewControllerのインスタンスごとに異なるURI
- 7. ShareKit iOS - プラットフォームごとに異なるコンテンツ
- 8. クリックごとに異なるフォームC#
- 9. Djangoアプリケーションごとに異なるvirtualenv
- 10. モジュールごとに異なるメニュー
- 11. WebRequest.Create()ごとに異なるTCP接続
- 12. Web APIエンドポイントごとに異なるフロー
- 13. ファイルタイプごとに異なる最大ファイルサイズ?
- 14. 入力ごとに異なるSQLクエリ
- 15. UIGraphicsGetCurrentContextごとに異なるsetStrokeカラー
- 16. Laravel - "WhereHas"クエリ:ユーザーごとに異なる
- 17. ハードウェアごとに異なるテキストサイズ
- 18. MVCバージョンごとに異なるNuGet Web.Config.Transforms
- 19. WooCommerce - カテゴリごとに異なる属性
- 20. MongoDB - テナントごとに異なるコレクション
- 21. クラスのインスタンスごとに異なるリスト
- 22. セルごとに異なるピッカーデータ
- 23. NGINXのユーザーエージェントごとに異なるファイル
- 24. ブラウザごとに異なるレイアウト
- 25. 参加者ごとに異なるリマインダー
- 26. ASP.Net環境ごとに異なるweb.config
- 27. 設定ごとに異なるアプリアイコン
- 28. ページごとに異なるSingle.phpコンテンツ
- 29. ブラウザーごとに異なるプロキシーウィンドウ
- 30. ターゲットごとに異なるスクレイプURL