[英]What is the best approach to implement search for searching documents (PDF, XML, HTML, MS Word)?
在Java Web应用程序中编码搜索功能以搜索文档的一种好方法是什么?
“标记搜索”是否适合此类搜索功能?
为什么要重新发明轮子?
查看Apache Lucene 。
另外,在Stack Overflow中搜索“全文本搜索”,您还会发现很多其他非常相似的问题。 例如,这是另一个: 如何在网站中实现搜索功能?
您可以使用位于Lucene之上的Solr ,它是一个真正的Web搜索引擎应用程序,而Lucene是一个库。 但是,Solr或Lucene都不会解析Word文档,pdf等来提取元数据信息。 必须基于预定义的文档架构对文档建立索引。
使用Tika,从文件获取文本的代码非常简单:
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.sax.BodyContentHandler;
import org.apache.tika.parser.Parser;
// exception handling not shown
Parser parser = new AutoDetectParser();
StringWriter textBuffer = new StringWriter();
InputStream input = new FileInputStream(file);
Metadata md = new Metadata();
md.set(Metadata.RESOURCE_NAME_KEY, file.getName());
parser.parse(input, new BodyContentHandler(textBuffer), md);
String text = textBuffer.toString()
到目前为止,Tika 0.3似乎运行良好。 只需将任何文件丢给它,它就会带给您哪种格式最有意义的信息。 到目前为止,我可以得到我用来投稿的所有内容的索引文本,包括PDF和新的MS Office文件。 如果某些格式存在问题,我认为它们主要在于获取格式化的文本,而不仅仅是原始明文。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.