【问题标题】:How to find email id from lucene indexed data如何从 lucene 索引数据中查找电子邮件 ID
【发布时间】: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


【解决方案1】:

org.apache.lucene.analysis.standard.UAX29URLEmailAnalyzer 如果我们使用的是 lucene7.4.0,可以使用分析器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 2017-08-27
    • 1970-01-01
    相关资源
    最近更新 更多