如何使用 lucene搜索获得如下所述的搜索方式?
实施例: 你好世界
在上面的例子中,如果我输入“Hello wo”,“Hel”或“Hello”,我需要点击。
这意味着如果输入的短语或字符退出搜索字符串,我需要点击
这是我获得点击的代码:
QueryParser parser = null;
Query query = null;
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT, new HashSet());
BooleanQuery.setMaxClauseCount(32767);
parser = new QueryParser("fieldname", analyzer);
parser.setAllowLeadingWildcard(true);
query = parser.parse("searchString");
TopDocs topResultDocs = searcher.search(query, null, 20);
答案 0 :(得分:0)
最简单的方法是通过在搜索字符串的末尾添加通配符(*
)来创建前缀查询,例如:
query = parser.parse("hel*")
或者,您也可以在分析器中使用ngram filter将标记拆分为较小的块。