在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Lucene搜索引擎 → lucene搜索引擎

lucene搜索引擎

Lucene搜索引擎

下载此实例
  • 开发语言:Java
  • 实例大小:6.68M
  • 下载次数:47
  • 浏览次数:456
  • 发布时间:2016-04-13
  • 实例类别:Lucene搜索引擎
  • 发 布 人:lyong
  • 文件格式:.rar
  • 所需积分:3
 相关标签: Lucene c 引擎 搜索

实例介绍

【实例简介】
【实例截图】

【核心代码】

package lucene1;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.Searcher;
import org.apache.lucene.search.highlight.Highlighter;
import org.apache.lucene.search.highlight.QueryScorer;
import org.apache.lucene.search.highlight.SimpleFragmenter;
import org.apache.lucene.search.highlight.SimpleHTMLFormatter;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.nodes.TextNode;
import org.htmlparser.util.NodeList;
import org.htmlparser.visitors.TextExtractingVisitor;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;

public class ReaderFile {

public static String pdfFile(String filename)
throws IOException {
FileInputStream instream = new FileInputStream(filename);    // 根据指定文件创建输入流
PDFParser parser = new PDFParser( instream );                // 创建PDF解析器
parser.parse();                                              // 执行PDF解析过程

PDDocument pdfdocument = parser.getPDDocument();             // 获取解析器的PDF文档对象
PDFTextStripper pdfstripper = new PDFTextStripper();         // 生成PDF文档内容剥离器
String contenttxt = pdfstripper.getText(pdfdocument);        // 利用剥离器获取文档
pdfdocument.close();
System.out.println("文件长度 : " contenttxt.length() "\n");
return contenttxt;
}

public static String txtFile(String filename)
throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream(filename)));
String line = new String();
String temp = new String();

while ((line = reader.readLine()) != null) {
temp = line;
}
reader.close();
return temp;
}

public static String docFile(String filename)
throws IOException {
FileInputStream in = new FileInputStream(new File(filename));
    
   WordExtractor extractor  = new WordExtractor(in);   // 创建WordExtractor
   String text = extractor.getText();                  // 对DOC文件进行提取
    
   return text;
}

public static String htmlFile(String filename)
throws Exception {
Parser parser = new Parser(filename);                              // 访问目标网站
         parser.setEncoding("utf-8");                             // 设置解析编码格式

         TextExtractingVisitor visitor = new TextExtractingVisitor (); // 生成文本内容抽取对象 
         
         NodeFilter textFilter = new NodeClassFilter(TextNode.class);  // 生成文本过滤器
         
         NodeList nodes = parser.extractAllNodesThatMatch(textFilter); // 利用文本过滤器解析文档
         String text = "";
         for (int i = 0; i < nodes.size(); i )
         {
             TextNode textnode = (TextNode) nodes.elementAt(i);        // 获取文本节点
             String line = textnode.toPlainTextString().trim();        // 转换成纯文本
             if (line.equals("")) continue;
             //System.out.println(line);
             text = line;
         }
         
         parser.visitAllNodesWith (visitor);                           // 访问网页所有节点 
        // System.out.println(text); 
         return text ; // 输出网页正文
}

public static String xlsFile(String filename)
throws IOException {
// 创建对指定Excel工作文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filename));
HSSFSheet sheet = workbook.getSheetAt(0);             // 创建对工作表的引用。
String text = "";
for( int i =0 ; i < workbook.getNumberOfSheets() ; i ) // 循环取表单对象
{
text ="########## sheet:--" i " --########## \n";
sheet = workbook.getSheetAt(i);                      // 查阅文档的Sheet属性
if( sheet != null )
{
for(int m = 0; m < sheet.getLastRowNum(); m )  //  按行循环取行对象
{
HSSFRow row = sheet.getRow(m);
if( row == null){ break;}
text ="\n";
if(row.getLastCellNum() <= 0) break;
text = "-----line:--" m " ---- ,col num:" 
          row.getLastCellNum() "\n";
for(int n = 0; n < row.getLastCellNum(); n ) // 按列循环取单元格对象
{
HSSFCell cell = row.getCell((short)n);

if( cell == null){ break; }
int type = cell.getCellType();
switch(type)
{     case 0:
text =cell.getNumericCellValue() " , \n"; 
break;
     case 1:
     text =cell.getStringCellValue() " , \n"; 
break;
     case 2:
break;
     case 3:
     text = " , \n"; 
break;
 default:
 text ="未知的单元类型" type " , \n";
}
}
}
}
text ="\n";
}
   return text;
}
}

标签: Lucene c 引擎 搜索

实例下载地址

lucene搜索引擎

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

相关文章

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警