使用Lucene.net执行搜索,首先要创建IndexSearcher对象,然后通过Term和Query对象来封装用户输入的搜索条件,最后将结果封装在Hits对象中,返回给用户。
1、创建搜索器对象:IndexSearcher
创建IndexSearcher对象的方法:如下:
IndexSearcher searcher = new IndexSearcher(索引目录实例);
创建IndexSearcher对象很容易,创建完成之后,就可以使用它进行搜索了。它最常用的方式是search(),使用search方法将返回一个结果集对象,即Hits。
2、封装搜索条件:使用Term和Query对象
例如我们要从一个索引中搜索"title"字段包含“中国”的文档。即用户的搜索条件是:字段为title,关键词为“中国”。这时:
Term t = new Term("title","中国");
然后,我们要创建一个Query对象,从而把Term对象转化为可执行的查询条件。Query对象有很多种,我们这里介绍最简单的TermQuery对象。用法如下:
Query query = new TermQuery(t);
3、执行搜索
用户的搜索请求被封装好了之后,就该把请求传递给IndexSearcher对象,使其执行搜索。IndexSearcher对象调用search方法,以Query对象为参数,返回搜索结果。在3.0.3版后返回TopDocs对象。
TopDocs docs = searcher.Search(query, null, 1000);
原文:http://www.cnblogs.com/kissdodog/p/3630487.html