将两个XML文档(相同的核心文本,不同的标记)合并到Lucene上的索引

时间:2010-10-16 18:10:12

标签: xml indexing lucene

我正在构建一个用于搜索某些历史文档的Web搜索应用程序(丰富的应用程序)。那些文件有自己的结构。我正在使用lucene 3.x来构建搜索引擎等。

到目前为止,我已经构建了自己的Analyzer和SimpleToken类来满足我的需求。那么问题是什么?

问题是我有三个不同的文件代表同一个文件。一个文件是原始文档,没有任何标记的纯文本。另外两个是XML标记的文档,一个代表文档的地形结构(所以它是原始文档加上标记来表示自己的结构),另一个代表文档的编号和列(再一次,原始文档加上标记来分割文档文本到页面和列)。将这两个XML文档合并为一个非常困难和令人困惑,文件非常大(超过50,000行)。问题是我真的需要两个xml文档的信息..

话虽如此,您认为将所有内容编入索引的最佳方法是什么?我对lucene没有经验,实际上这是我第一次使用它。首先,我必须知道我将如何从文档中获取文本(可能是一些XML Parser?),以及我将如何合并标记文档的信息。你认为我应该创建两个索引,每个标记文档一个,然后以某种方式合并这些索引?我真的需要一些方向。

1 个答案:

答案 0 :(得分:1)

我会从相反的方向工作:他们将寻找什么?据推测,如果您的xml具有类似<domain>blah</domain>的内容,则搜索“blah”的权重应该更高(因为域中的匹配比身体中的匹配“更有价值”)。

然而,像页码这样的东西?我怀疑是否有人会进行重要的搜索。

所以我会使用第一个,它有关于域的标记(如果我对用户重要的假设是正确的)。 Tika是一个用于从各种文件类型(包括XML)中提取数据并将其放入Lucene的库。