如何在lucene中打印匹配的内容

时间:2018-08-07 11:07:12

标签: lucene

目前,我正在使用lucence 7.4,我的要求是在特定的根文件夹下查找敏感关键字的出现。

首先,我们想知道所有电子邮件ID都记录在哪里。 使用UAX29URLEmailAnalyzer之后,我可以缩小存在该文件的文件列表。

从主要方法中,我正在使用以下正则表达式来标识电子邮件ID:

tester.search("[a-z\\_\\-\\.\\%\\+]+\\@[a-z]+.[a-z]{3}");

事后搜索方法给了我具有该模式的文件列表。

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);




    for(ScoreDoc scoreDoc : hits.scoreDocs) {
     Document doc = searcher.getDocument(scoreDoc);
        System.out.println("File: "
        + doc.get(LuceneConstants.FILE_PATH));


  }

搜索非常快,并在2秒内完成。 我不知道有什么方法可以打印文件中匹配的电子邮件ID?

另外,我能得到具有匹配内容的整行吗?

请指导。

0 个答案:

没有答案