title: How to use multifieldquery and filters in Lucene.net
body: <p>I want to perform a multi field search on a lucene.net index but filter the results based on one of the fields.  Here's what I'm currently doing:</p>
  
  <p>To index the fields the definitions are:</p>
  
  <pre><code>doc.Add(new Field("id", id.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
  doc.Add(new Field("title", title, Field.Store.NO, Field.Index.TOKENIZED));
  doc.Add(new Field("summary", summary, Field.Store.NO, Field.Index.TOKENIZED, Field.TermVector.YES));
  doc.Add(new Field("description", description, Field.Store.NO, Field.Index.TOKENIZED, Field.TermVector.YES));
  doc.Add(new Field("distribution", distribution, Field.Store.NO, Field.Index.UN_TOKENIZED));
  </code></pre>
  
  <p>When I perform the search I do the following:</p>
  
  <pre><code>MultiFieldQueryParser parser = new MultiFieldQueryParser(new string[]{"title", "summary", "description"}, analyzer);
  parser.SetDefaultOperator(QueryParser.Operator.AND);
  Query query = parser.Parse(text);
  
  BooleanQuery bq = new BooleanQuery();
  TermQuery tq = new TermQuery(new Term("distribution", distribution));
  bq.Add(tq, BooleanClause.Occur.MUST);
  Filter filter = new QueryFilter(bq);
  
  Hits hits = searcher.Search(query, filter);
  </code></pre>
  
  <p>However, the result is always 0 hits.</p>
  
  <p>What am I doing wrong?</p>