Lucene uses a
Tokenizer to break-up text into individual tokens that are indexed / searched-for. You seem to be using a tokenizer that is breaking up the words at hyphens too (
StandardTokenizer, one of the more commonly used tokenizers, has this behaviour.) If you would like to change the tokenization scheme: either use some other suitable tokenizer (if one exists,) or, write your own — it's pretty easy. Do ensure that you are using the same tokenizer for both indexing as well as searching; otherwise the universe will come to an end (or something to that effect.)
You can use
Luke to see how your query is being broken up. It can also show you how your indexed text was broken up. Luke is an indispensable tool for when you have to figure out such things.
You can find some useful notes on Lucene Analyzers/Tokenizers and how to customise them here:
http://mext.at/?p=26Hope this helps.