Java中的搜索引擎?

11
  1. 我正在尝试创建一个搜索引擎,只是为了学习和在Java方面获得更多经验。

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

    因此,当我搜索关键字时,它应该显示带有元描述的文件,就像Google一样。

    我的问题是,除了html之外,您能否向任何其他文件格式添加元数据,以便显示元描述。

  2. 您是否能够指向一个可以搜索文件格式(txt、html)并显示结果的Java搜索引擎?

    我正在编写自己的代码,但想看看其他人的代码以获取帮助?

8个回答

27

Lucene 是 Java 中的标准搜索引擎。

若想从各种来源添加文档,请参考 Apache Tika。 若需一个带有服务/网络接口的完整系统,请尝试使用 solr

Lucene 允许将任意元数据与其文档关联。Tika 将自动从各种格式中提取元数据。


5

1)除了html以外,您能在任何其他文件格式中添加元数据,以便显示元描述吗?

通常您会使用数据库并将元数据与文档一起存储在那里。然后使用数据库查询进行关键字搜索(可能使用类似于SQL的语言进行)。这些文件可以存储在硬盘上,并在DB中只有路径,也可以作为CLOB或BLOB放入数据库中,具体取决于您是否有文本或二进制文档。

2)您能指向一个可以搜索文件格式(txt、html)并显示结果的Java搜索引擎吗?

尝试使用Apache Lucene


4

看看 Apache Nutch

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

Nutch基于Lucene/Solr进行索引,使用Tika解析文档,并添加了自己的网络爬虫。

3
真正好的工具是Lucene。它有很多插件(允许您从.doc文件中读取内容),支持多种语言和许多算法(如Levenshtein距离)。

3
  • 现在谷歌完全忽略meta描述了,因为这已经被滥用或者没有填写重要的值。
  • Lucene和/或Solr可能会做你想要的事情,可以看看。
  • 100个文件是非常少的,如果只是练习的话,你可以随意以任何方式管理这些数据。

3

...提到其他人的代码时,我想起了lucenesolr


3
你需要使用几个库。首先,正如许多人之前提到的,你可以使用Lucene进行实际搜索。然而,Lucene只处理纯文本,因此你需要从索引的文件中提取它。
为此,你可以使用Apache Tika
要开始,请购买Lucene in Action 2nd edition这本书。其中大部分示例仍然是最新的。如果你想省钱,也可以只查看该页面上提供的源代码。

2

Apache Tika 可以提取元数据

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接