hibernate-search-3.2.1.Finalを使用しており、入力を帯状疱疹に解析したいと思います。ドキュメントで確認できることから、ShingleAnalyzerWrapperはまさに私が必要としていたもののようです。私は、ShingleAnalyzerWrapperのデフォルトのアナライザーとして、WhitespaceAnalyzer、StandardAnalyzer、およびSnowballAnalyzerの両方でテストしました。
Version luceneVersion = Version.LUCENE_29;
SnowballAnalyzer keywordAnalyzer= new SnowballAnalyzer(luceneVersion, "English", StopAnalyzer.ENGLISH_STOP_WORDS_SET);
ShingleAnalyzerWrapper shingleAnalyzer = new ShingleAnalyzerWrapper(keywordAnalyzer, 4);
shingleAnalyzer.setOutputUnigrams(false);
QueryParser keywordParser = new QueryParser(luceneVersion, "keyword", keywordAnalyzer);
Query keywordQuery = keywordParser.parse(QueryParser.escape(keyword.toLowerCase()));
ただし、クエリは空に戻りました。「helloworld、this isLucene」のようなキーワードが帯状疱疹になることを期待していました[helloworldthis is、world this is lucene、this is lucene]
私のShingleAnalyzerWrapperの期待と使用法が正しいかどうか教えてください。
ありがとう、ライアン