2011-10-28 109 views
10
  1. 我想创建一个搜索引擎只是为了学习和获得更多的Java经验。Java中的搜索引擎?

    我的意图是在服务器上存储大约100个文件,这些文件是html,xml,doc,txt的混合文件,并且每个文件都有元数据。

    所以当我搜索一个关键字时,它应该显示一个带有其元描述的文件,如Google。

    我的问题是,除了HTML,你可以添加元数据到任何其他文件格式,以便显示元描述。

  2. 您能否指向一个Java搜索引擎,可以在文件格式(txt,html)中搜索并显示结果。

    我正在为自己的代码工作,但希望看看其他人的代码的一些帮助?

回答

26

Lucene是规范的Java搜索引擎。

要添加各种来源的文档,请查看Apache Tika以及具有服务/ Web界面的完整系统solr

Lucene允许任意元数据与其文档相关联。 Tika将自动剔除各种格式的元数据。

4

1)我的问题是除html之外,你可以添加元数据到任何其他文件格式,以便显示元描述。

一般来说,您将使用数据库并将元数据与文档一起存储在那里。 然后,您可以使用数据库查询(可能使用SQL like或ilike)进行关键字搜索。

这些文件可能存储在硬盘上,只有路径在数据库中,或者作为CLOB或BLOB放入数据库,具体取决于您是否具有文本或二进制文档。

2)你能指向一个Java搜索引擎,它可以在文件格式(txt,html)中搜索并显示结果。

尝试Apache Lucene

3

真的很好是Lucene。有很多的插件(这将允许例如从.DOC读),支持多国语言和大量的算法(如Levenshtein距离)

3

apache nutch

Apache Nutch is an open source web-search software project. 

Nutch的基础上Lucene之上/ solr索引,tika解析文档,并添加自己的网络爬虫。

3
  • 谷歌完全忽略元描述时下,因为它可能已被滥用,或不填充显著值
  • Lucene和/或Solr可能会做你想要什么,一起来看看。
  • 100个文件是一个非常小的数量,如果是用于练习,您将不会有任何问题来以任何喜欢的方式管理此数据量。
2

Apache Tika提取元数据

Apache Tika Apache Tika工具包是ASFv2许可的开放源代码 从数字文档中提取信息的工具。 Tika允许 搜索引擎,内容管理系统和其他应用程序可以使用各种数字文档轻松检测并从所有主要文件格式中提取元数据和内容。

3

您将不得不使用多个库。首先,很多人之前提到可以使用Lucene来进行实际搜索。但是,Lucene只处理纯文本,所以你需要从你索引的文件中提取。 为此,您可以使用Apache Tika

要开始,你应该买书Lucene in Action 2nd edition。那里的大多数例子仍然是最新的。如果你想成为一个小家伙,你也可以看看该页面提供的源代码。