我正在使用 hibernate-search-3.2.1.Final 并想将我的输入解析为带状疱疹。从我在文档中可以看到,ShingleAnalyzerWrapper 似乎正是我所需要的。我已经使用 WhitespaceAnalyzer、StandardAnalyzer 和 SnowballAnalyzer 作为 ShingleAnalyzerWrapper 的默认分析器进行了测试。
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()));
但是,查询返回为空。我期待像“hello world,this is lucene”这样的关键字会导致带状疱疹[hello world this is,world this is lucene,this is lucene]
让我知道我对 ShingleAnalyzerWrapper 的期望和使用是否正确。
谢谢,瑞安