lucene3 使用正则表达式查询索引主要使用RegexQuery类,这个类属于第三方jar包,需要下载。
要使用第三放的包,就是jakata-regexp-x.jar,下载地址:http://jakarta.apache.org/site/downloads/downloads_regexp.cgi
运行例子:
// 利用正则查询
String regex = ".*";
Term term = new Term(search_field_name, regex);
RegexQuery query = new RegexQuery(term);
TopDocs hits = searcher.search(query, 100);
for (int i = 0; i < hits.scoreDocs.length; i++) {
int docId = hits.scoreDocs[i].doc;
Document hit = searcher.doc(docId);
String text = hit.get(search_field_name);
}
注意:
1. 需要将lucene解压包中contrib\regex\src\java\org\apache\regexp目录下的所有文件和
contrib\regex\src\java\org\apache\lucene\search\regex 目录下的所有文件放入工程内(在lucene3.0中是以jar包的形式存在)