只是想知道没有找到在每个具有不同价值的多个字段上进行自定义搜索的好例子吗?
我有以下需要:
类别:cat1国家:美国州:加州desc:一些文字标题:一些文字
问题是我是lucene的新手,无法理解如何编写上述查询以便完成搜索!
由于
答案 0 :(得分:1)
如果我理解你是正确的,那么你对索引中的每个字段都有一个搜索查询?你想在这些之间有一个AND
条款吗?
我认为您应该能够创建一个BooleanQuery来完成此任务;
...
var directory = FSDirectory.Open("PATH_TO_INDEX");
using (var searcher = new IndexSearcher(directory))
{
var booleanQuery = new BooleanQuery();
Query category = new TermQuery(new Term("category", searchTextForCategory));
Query country = new TermQuery(new Term("country", searchTextForCountry));
Query state = new TermQuery(new Term("state", searchTextForState));
...
booleanQuery.add(category, BooleanClause.Occur.MUST);
booleanQuery.add(country, BooleanClause.Occur.MUST);
booleanQuery.add(state, BooleanClause.Occur.MUST);
Hits hits = searcher.Search(booleanQuery)
...
}