title: Lucene wildcards and words with the letter 's' on the end
body: <p>Im having a bit of trouble finding some information on whats happening with my lucene searches.</p>
  
  <pre><code>(Id:gloves* Search:gloves* SpellCheckerSource:gloves*) OR
  (Id:gloves Search:gloves SpellCheckerSource:gloves) OR
  (Id:glove* Search:glove* SpellCheckerSource:glove*) 
  </code></pre>
  
  <p>When I search for the above I get the following rewritten term</p>
  
  <pre><code>(() () ())
  (Id:glove Search:glove SpellCheckerSource:glove) 
  (() ConstantScore(Search:glove*) ConstantScore(SpellCheckerSource:glove*))
  </code></pre>
  
  <p>This is using LUKE, I have been running the query in LUKE to try see whats going on.
  <a href="http://www.getopt.org/luke/" rel="nofollow">http://www.getopt.org/luke/</a></p>
  
  <p>Now what I want to be able to do is search for a term ie gloves* which ends up being (() () ())</p>
  
  <p>I don't understand why this gets translated like this is there and issue with my query or with my index?</p>
  
  <p>LUKE tells me the structure explanation is as follows</p>
  
  <pre><code>lucene.BooleanQuery
    clauses=3, maxClauses=1024
    Clause 0: SHOULD
      lucene.BooleanQuery
        clauses=3, maxClauses=1024
        Clause 0: SHOULD
          lucene.BooleanQuery
            clauses=0, maxClauses=1024, coord=false
        Clause 1: SHOULD
          lucene.BooleanQuery
            clauses=0, maxClauses=1024, coord=false
        Clause 2: SHOULD
          lucene.BooleanQuery
            clauses=0, maxClauses=1024, coord=false
    Clause 1: SHOULD
      lucene.BooleanQuery
        clauses=3, maxClauses=1024
        Clause 0: SHOULD
          lucene.TermQuery
            Term: field='Id' text='glove'
        Clause 1: SHOULD
          lucene.TermQuery
            Term: field='Search' text='glove'
        Clause 2: SHOULD
          lucene.TermQuery
            Term: field='SpellCheckerSource' text='glove'
    Clause 2: SHOULD
      lucene.BooleanQuery
        clauses=3, maxClauses=1024
        Clause 0: SHOULD
          lucene.BooleanQuery
            clauses=0, maxClauses=1024, coord=false
        Clause 1: SHOULD
          lucene.ConstantScoreQuery, ConstantScore(Search:glove*)
            Filter: Search:glove*
        Clause 2: SHOULD
          lucene.ConstantScoreQuery, ConstantScore(SpellCheckerSource:glove*)
            Filter: SpellCheckerSource:glove*
  </code></pre>
  
  <p>This seems strange to me on multiple levels</p>
  
  <ol>
  <li>Why have I got translated blank clauses?</li>
  <li>Why have I got a mix of TermQuery,ConstantScoreQuery And BooleanQuery?</li>
  <li>Where are ConstantScoreQuery getting generated?</li>
  </ol>
  
  <p>It should be noted everything works fine for me when i search for a term with out and s IE glove or with out a wildcard just the combination of the two seems to break the query.</p>