【发布时间】:2018-07-27 12:36:58
【问题描述】:
目前我正在使用 lucence 7.4,我的要求是提取特定根文件夹下包含电子邮件 ID 的文件列表
作为一个新手,我做了一个模拟练习来获得关于 lucene 的经验,到目前为止,我能够为所有文件递归地索引根文件夹,并且示例字符串的搜索模式(例如:oracle.com)正在返回列表给我的文件。
继续前进,我无法理解如何仅提取出现电子邮件 ID 的文件?
我的 indexer 和 searcher java 类都在使用 StandardAnalyzer。
在我的主要课程中,我尝试使用下面的正则表达式但没有运气..:(
tester.search("[a-z]*.[a-z]*?oracle.com")
.
.
private void search(String searchQuery1) throws IOException, ParseException, org.apache.lucene.queryparser.classic.ParseException {
searcher = new Searcher(indexDir);
long startTime = System.currentTimeMillis();
//create a term to search file name
Term term1 = new Term(LuceneConstants.CONTENTS, searchQuery1);
//create the term query object
Query query1 = new RegexpQuery(term1);
TopDocs hits = searcher.search(query1);
请指导。
【问题讨论】:
-
见stackoverflow.com/q/19014/6039846,看来正是你所需要的
-
感谢@rojobo 对我的指导。截至目前,我在两者中都使用了 org.apache.lucene.analysis.standard.UAX29URLEmailAnalyzer 分析器后能够继续索引和搜索方法。标准分析器的问题是它在找到 @ 后将电子邮件地址分成 2 个不同的标记,因此不适合我们的需要。
标签: lucene