You are constructing a query string on the fly. Personally, I have found that to be an error magnet, and I like to have a look at the constructed string to see if it is what I wanted it to be. You could either log the value or turn on logging for Lucene, so you could see what the search query looks like.
Part of the reason I suggest this is that your parameters may need to be properly escaped so that any metacharacters do not interfere with the parsing of the query string.