0
我正在使用Lucene和java来索引一些文本文档。现在,在我为关键字搜索获得一些顶级文档之后,我想进一步优化我的搜索并仅搜索那些带有一些额外关键字的顶级文档,因此每个文档只有一次。有人可以告诉我如何使用特定的关键字来搜索特定的文档,而不是整个索引,但是可以用关键字“bla blah”来说明123.xml。在特定文档上搜索lucene
thanx提前
我正在使用Lucene和java来索引一些文本文档。现在,在我为关键字搜索获得一些顶级文档之后,我想进一步优化我的搜索并仅搜索那些带有一些额外关键字的顶级文档,因此每个文档只有一次。有人可以告诉我如何使用特定的关键字来搜索特定的文档,而不是整个索引,但是可以用关键字“bla blah”来说明123.xml。在特定文档上搜索lucene
thanx提前
如果要细化搜索,你应该使用过滤器(看IndexSearcher的
search(Query query,
Filter filter,
int n,
Sort sort)
)!过滤器将在结果集上执行,并且是实现精确搜索的正确方法。
看一看这个页面,了解如何使用过滤器:如果你只想要一个文档中进行搜索,你可以把一个文件
,将其存储在:http://www.javaranch.com/journal/2009/02/filtering-a-lucene-search.html
不管怎么说RAMDirectory并在RAMDirectory中搜索,就像在普通索引中一样。或者您可以为每个文档设置一个字段包含唯一标识符,并将其添加到您的查询中,例如“内容:(bla blah)和uniqe_doc_id:(doc1)”
我不是很熟悉lucene,你能举一个我如何使用过滤器的例子吗? – Fuega 2011-05-04 13:25:20
@Fuega:我编辑了答案;) – csupnig 2011-05-04 13:33:59