以下のようにLuceneが検索するクエリを作成しようとしています
word:"searched_word" AND (カテゴリ:0 OR カテゴリ:1)
つまり、searched_word は word フィールドにある必要があり、category フィールドは 0 または 1 です。
word フィールドは通常フィールド タイプ カテゴリ フィールドは NumericField タイプ
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);