我正在使用Apache lucene的索引器搜索,并且正在使用 MultiFieldQueryParser类来搜索单词。它对于英语单词工作正常,但是当我搜索日语单词时,该单词的计数为零。
例如
MultiFieldQueryParser mqp = new MultiFieldQueryParser(new String[]{"firstName"}, new StandardAnalyzer());
mqp.setAllowLeadingWildcard(true);
Query q =mqp.parse("*abc*");
TopDocs hits = searcher.search(q, 10);
return hits;
以上代码对英语单词的返回值超过零,
但是当我搜索日语单词时,它的计数为零。
例如
MultiFieldQueryParser mqp = new MultiFieldQueryParser(new String[] {"firstName"}, new StandardAnalyzer());
mqp.setAllowLeadingWildcard(true);
Query q =mqp.parse("*あんくr*");
TopDocs hits = searcher.search(q, 10);
return hits;
答案 0 :(得分:0)
您只需要在org.apache.lucene.analysis.cjk中使用适当的分析器(中文,日文和韩文是相同的):
MultiFieldQueryParser mqp = new MultiFieldQueryParser(new String[] {"firstName"}, new CJKAnalyzer());
mqp.setAllowLeadingWildcard(true);
Query q =mqp.parse("*あんくr*");
TopDocs hits = searcher.search(q, 10);
return hits;
https://lucene.apache.org/core/4_10_3/analyzers-common/index.html