如何使用Apache Lucenes Indexer搜索来搜索日语单词?

时间:2018-06-20 06:05:03

标签: apache search lucene

我正在使用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;  

1 个答案:

答案 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