C# 如何构建Lucene查询x和(y或z)

C# 如何构建Lucene查询x和(y或z),c#,lucene,lucene.net,C#,Lucene,Lucene.net,我正在尝试为Lucene创建一个如下所示的搜索查询 词:“搜索词”和(类别:0或类别:1) 什么意思搜索的单词必须在单词字段中,类别字段为0或1 字字段是正常字段类型 类别字段是数字字段类型 BooleanQuery mainQuery = new BooleanQuery(); Query query1 = new TermQuery(new Term("category", NumericUtils.IntToPrefixCoded(0))); Query quer

我正在尝试为Lucene创建一个如下所示的搜索查询

词:“搜索词”和(类别:0或类别:1)

什么意思搜索的单词必须在单词字段中,类别字段为0或1

字字段是正常字段类型 类别字段是数字字段类型

    BooleanQuery mainQuery = new BooleanQuery();

    Query query1 = new TermQuery(new Term("category", NumericUtils.IntToPrefixCoded(0)));
    Query query2 = new TermQuery(new Term("category", NumericUtils.IntToPrefixCoded(1));

    Query queryTerm= new TermQuery(new Term("word", searchedWord));


    mainQuery.Add(queryTerm, BooleanClause.Occur.MUST);

    BooleanQuery innerOrQuery = new BooleanQuery();

    //How do i add them as OR and as AND to mainQuery
    innerOrQuery.Add(querySingleDirection, BooleanClause.Occur.MUST);
    innerOrQuery.Add(queryBothDirection, BooleanClause.Occur.MUST);
     mainQuery.Add(innerOrQuery, BooleanClause.Occur.MUST);
    TopDocs topDocs = _indexSearcher.Search(mainQuery, Settings.Current.MaximumTopScoreCount);

你好你能看看这个帖子吗。我都快疯了。
Query queryTerm = new TermQuery(new Term("word", searchedWord));
Query query1 = new TermQuery(new Term("category", NumericUtils.IntToPrefixCoded(0)));
Query query2 = new TermQuery(new Term("category", NumericUtils.IntToPrefixCoded(1));

BooleanQuery innerOrQuery = new BooleanQuery();
innerOrQuery.Add(query1, BooleanClause.Occur.SHOULD);
innerOrQuery.Add(query2, BooleanClause.Occur.SHOULD);

BooleanQuery mainQuery = new BooleanQuery();
mainQuery.Add(queryTerm, BooleanClause.Occur.MUST);
mainQuery.Add(innerOrQuery, BooleanClause.Occur.MUST);

TopDocs topDocs = _indexSearcher.Search(mainQuery, Settings.Current.MaximumTopScoreCount);