0

只是想知道没有找到对每个具有不同值的多个字段进行自定义搜索的好例子吗?

我有以下需求:

类别:cat1 国家:美国 州:加利福尼亚 desc:一些文本 标题:一些文本

问题是我是 lucene 新手,无法理解如何编写上述查询,因此搜索完成!

谢谢

4

1 回答 1

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)
    ...

}
于 2013-09-17T12:10:34.150 回答