title: How to create more complex Lucene query strings?
body: <p>This question is a spin-off from <a href="https://stackoverflow.com/questions/532365/how-to-get-more-out-of-lucene-net">this</a> question.
  My inquiry is two-fold, but because both are related I think it is a good idea to put them together.</p>
  
  <ul>
  <li>How to programmatically create queries. I know I could start creating strings and get that string parsed with the query parser. But as I gather bits and pieces of information from other resources, there is a programattical way to do this.</li>
  <li>What are the syntax rules for the Lucene queries?</li>
  </ul>
  
  <p>--EDIT--  </p>
  
  <p>I'll give a requirement example for a query I would like to make:<br>
  Say I have 5 fields:</p>
  
  <ol>
  <li>First Name</li>
  <li>Last Name</li>
  <li>Age</li>
  <li>Address</li>
  <li>Everything</li>
  </ol>
  
  <p>All fields are optional, the last field should search over all the other fields.
  I go over every field and see if it's IsNullOrEmpty(). If it's not, I would like to append a part of my query so it adds the relevant search part.<br>
  First name and last name should be exact matches and have more weight then the other fields. Age is a string and should exact match. Address can varry in order. Everything can also varry in order.</p>
  
  <p>How should I go about this?</p>