lucene.net搜索文档(pdf,doc,txt)内容
public static void AddTxtDocument(string path, IndexWriter writer) { try { Document doc = new Document(); string StrContent; if (Path.GetExtension(path).ToLower() == ".pdf") { StrContent = pdfToTxt(path); } else { using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default)) { StrContent = sr.ReadToEnd(); } } doc.Add(new Field(CONTENT_KEY_NAME, StrContent, Field.Store.NO, Field.Index.ANALYZED));//内容 doc.Add(new Field(TITLE,Path.GetFileNameWithoutExtension(path) , Field.Store.YES, Field.Index.ANALYZED));//标题 doc.Add(new Field(FILE_KEY_NAME, path, Field.Store.YES, Field.Index.NO));//文件名 doc.Add(new Field(CREATEDATE, new FileInfo(path).LastWriteTime.ToString(), Field.Store.YES, Field.Index.NO));//创建时间 writer.AddDocument(doc); } catch (Exception) { throw; } } private static string pdfToTxt(string pdffile) { PDDocument doc = PDDocument.load(pdffile); PDFTextStripper pdfStripper = new PDFTextStripper(); return pdfStripper.getText(doc); }
lucene.net搜索pdf文件内容前,先要读取pdf文本,这必然要有一个转换,pdfbox就必不可少了,当然也还有其他方式(运行已有的exe),网上方法很多,
只要能把pdf图片转为字符串,lucene.net就能搜索得到了。
使用pdfbox需:
1.下载pdfbox的dll
2.再引用一下两个命名空间:
using org.pdfbox.pdmodel;
using org.pdfbox.util;
本文来自博客园,作者:NLazyo,转载请注明原文链接:https://www.cnblogs.com/bile/archive/2013/06/04/3117176.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现