: Is it safe to say in order to do exact matches the field should be a string.
It depends on your definition of "exact" If you want exact matches, including unicode codepoints and leading/trailing whitespace, then StrField would probably make sense -- but you could equally use TextField with a KeywrodTokenizer and nothing else. If you want *some* normalization (ie: trim leading/trailing whitespace, map equivilent codepoints to a canonical representation, etc...) then you need TextyField. : Now in my dismax handler if i have the qf defined as text field and run a : phrase search on text field : "my car is the best car in the world" : i dont get back any results. looking with debugQuery=on this is the : parsedQuery : text:"my tire pressure warning light came my honda civic" : This will not work since text was indexed by removing all stop words. it *can* work if the query analyzer for your text field type is also configured to remove stopwords, and if you either: configure the StopFilter(s) to deal with token positions in the way the parser expects (i forget which one works, you have to play with it); OR us a "qs" (query slop) value that gives you enough slop to miss those empty stop word gaps. -Hoss