インデックス付きフィールドの一部にはギリシャ語のアナライザーが使用されており、他のフィールドには英語のアナライザーを使用したいと考えています。私の問題は次のとおりです:現在、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. ShareKit iOS - プラットフォームごとに異なるコンテンツ
- 2. Laravel - "WhereHas"クエリ:ユーザーごとに異なる
- 3. WebRequest.Create()ごとに異なるTCP接続
- 4. UIViewControllerのインスタンスごとに異なるURI
- 5. クリックごとに異なるフォームC#
- 6. observableCollectionのオブジェクトごとに異なるビュー
- 7. ハードウェアごとに異なるテキストサイズ
- 8. ブラウザごとに異なるレイアウト
- 9. MVCバージョンごとに異なるNuGet Web.Config.Transforms
- 10. Djangoアプリケーションごとに異なるvirtualenv
- 11. Rails 3:モデルごとに異なるビュー
- 12. 異なるタッチイベントごとに異なる応答
- 13. JPA HibernateSearch Projections
- 14. MultiFieldQueryParserの使用
- 15. XCodeアナライザーはごみを報告しています
- 16. 異なるユーザータイプの異なるフィールド
- 17. SQL Server 2000:異なるフィールドごとにトップ10を取得する方法。ループかもしれない?
- 18. SAS sgplot:グループごとに異なる記号と色
- 19. 結果ごとに異なる要求と発生数
- 20. グループごとに異なるファイルにグループを書く
- 21. cakePHP meioupload、モデルごとに異なるフォルダに画像をアップロード
- 22. サイトごとに異なるdjangoをインストールする
- 23. ユーザーの種類ごとに異なるルートパスを設定する
- 24. マーカーごとに異なるアイコンを設定する方法は?
- 25. 複合コンポーネントごとに異なるエラーメッセージを指定する
- 26. ポートレットごとに異なるビューリゾルバを使用する
- 27. ウィジェットごとに異なるウィジェットを更新する方法
- 28. フォントファミリの各フォントごとに異なるフォントサイズを指定する
- 29. UITableViewのセクションごとに異なるカスタムセルを使用する
- 30. HQLで条件ごとに異なる条件で2つのフィールドをカウントする方法