Java 实现搜索文档(PDF、XML、HTML、MS Word)的最佳方法是什么?

Java 实现搜索文档(PDF、XML、HTML、MS Word)的最佳方法是什么?,java,search,pdf,ms-word,Java,Search,Pdf,Ms Word,在java web应用程序中编写搜索功能以搜索文档的好方法是什么 “标记搜索”是否很适合这种搜索功能?为什么要重新发明轮子 退房 此外,搜索“全文搜索”的堆栈溢出,您将发现许多其他非常类似的问题。下面是另一个例子: 为什么要重新发明轮子 退房 此外,搜索“全文搜索”的堆栈溢出,您将发现许多其他非常类似的问题。下面是另一个例子: 您可以使用它,它位于Lucene之上,是一个真正的web搜索引擎应用程序,而Lucene是一个库。然而,Solr和Lucene都没有解析Word文档、pdf等来提取元数据

在java web应用程序中编写搜索功能以搜索文档的好方法是什么


“标记搜索”是否很适合这种搜索功能?

为什么要重新发明轮子

退房

此外,搜索“全文搜索”的堆栈溢出,您将发现许多其他非常类似的问题。下面是另一个例子:
为什么要重新发明轮子

退房

此外,搜索“全文搜索”的堆栈溢出,您将发现许多其他非常类似的问题。下面是另一个例子:

您可以使用它,它位于Lucene之上,是一个真正的web搜索引擎应用程序,而Lucene是一个库。然而,Solr和Lucene都没有解析Word文档、pdf等来提取元数据信息。有必要根据预定义的文档架构为文档编制索引。

您可以使用它,它位于Lucene之上,是一个真正的web搜索引擎应用程序,而Lucene是一个库。然而,Solr和Lucene都没有解析Word文档、pdf等来提取元数据信息。有必要根据预定义的文档架构对文档进行索引。

至于提取Office文档的文本内容(在将其提供给Lucene之前,您需要这样做),有一个Apache Tika项目,它支持很多,包括Microsoft的。

至于提取Office文档的文本内容(在将其交给Lucene之前,您需要这样做),还有Apache Tika项目,它支持很多,包括Microsoft的。

使用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文件。如果某些格式存在问题,我相信它们主要在于获取额外的格式化文本而不仅仅是原始的纯文本。

使用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文件。如果某些格式存在问题,我相信它们主要在于获取额外的格式化文本而不仅仅是原始的纯文本。

只是为了更新

还有另一种替代Solr的方法,称为“”,它是一个具有良好功能的项目,类似于Solr,但没有模式

这两个项目都建立在Lucene之上。

只是为了更新

还有另一种替代Solr的方法,称为“”,它是一个具有良好功能的项目,类似于Solr,但没有模式


这两个项目都是在Lucene之上构建的。

Tika——另一个Lucene系列API——解决了从各种格式的文档中提取元数据和语义的问题。Tika——另一个Lucene系列API——解决了从各种格式的文档中提取元数据和语义的问题。听起来是一个很好的工具,要想知道它做得更好,t他的页面比主页更有用(现在大多数产品都是这样,他们不会告诉你他们做得很好!):听起来像是一个好工具,要想知道它做得更好,这个页面比主页更有用(现在大多数产品也是这样,他们不会告诉你他们做得很好!)当前位置虽然没有在这里列出,但今天我开始寻找一种有前途的产品,而今天我没有在这里列出,我开始寻找一种有前途的产品