PDFBoxPathIndex.java
上传用户:cctqzzy
上传日期:2022-03-14
资源大小:12198k
文件大小:3k
源码类别:

搜索引擎

开发平台:

Java

  1. package chapter9;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.File;
  5. import org.apache.lucene.analysis.Analyzer;
  6. import org.apache.lucene.analysis.standard.StandardAnalyzer;
  7. import org.apache.lucene.document.Document;
  8. import org.apache.lucene.index.IndexWriter;
  9. import org.apache.lucene.index.Term;
  10. import org.apache.lucene.search.Hits;
  11. import org.apache.lucene.search.IndexSearcher;
  12. import org.apache.lucene.search.Query;
  13. import org.apache.lucene.search.TermQuery;
  14. import org.pdfbox.searchengine.lucene.LucenePDFDocument;
  15. import org.pdfbox.searchengine.lucene.IndexFiles;
  16. public class PDFBoxPathIndex {
  17. private static String Dst_Index_Path = "D:\workshop\pdfindex\";
  18. private static String Src_Index_Path = "D:\workshop\docs\";
  19. /*================================================================
  20.  * 名 称:PDFQueryIndex
  21.  * 功 能:构造PDF文档检索查询器,对指定的索引进行查询。
  22.  ===============================================================*/
  23. public static void PDFQueryIndex(){
  24. try {
  25. IndexSearcher searcher = new IndexSearcher(Dst_Index_Path); // 生成检索器对象
  26. Term term = new Term("contents","pdfbox");                  // 检索关键字
  27. Query query = new TermQuery(term);                          // 生成检索对象
  28. System.out.println("----------检索内容:"+query.toString()+"----------");
  29. Hits hits = searcher.search(query);                          // 提交检索
  30. System.out.println("----------检索结果: 共检索到 "+hits.length()+" 条 ----------");
  31. // for(int i=0; i < hits.length(); i++)                         // 获得结果
  32. // {
  33. // System.out.println(hits.doc(i));
  34. // System.out.println(hits.doc(i).getField("id"));
  35. // }
  36. }catch (IOException e) {
  37. e.printStackTrace();
  38. }
  39. System.out.println("----------索引检索:PDF索引查询成功----------");
  40. }
  41. /*================================================================
  42.  * 名 称:PDFIndexBuilder
  43.  * 功 能:针对指定的目录,构造PDF磁盘索引。
  44.  ===============================================================*/
  45. public static void PDFIndexBuilder(){
  46. try {
  47.         IndexFiles indexpdf = new IndexFiles();
  48.         indexpdf.index(new File(Src_Index_Path),true,Dst_Index_Path);
  49. }catch ( Exception e) {
  50. e.printStackTrace();
  51. }
  52. System.out.println("----------创建索引:PDF 文件成功. ----------");
  53. }
  54. /*================================================================
  55.  * 名 称:main
  56.  * 功 能:测试Lucene中PDF文件的索引建立和检索查询功能。
  57.  ===============================================================*/
  58. public static void main(String[] args) {
  59. PDFIndexBuilder();    // 创建索引
  60. PDFQueryIndex();      // 检索关键字 
  61. System.out.println("----------PDF Lucene 检索测试 ----------");
  62. }
  63. }