That works very well - thank you for your quick reply. As a followup question, what if the desired effect was to force hits containing terms in the 'excludes' field to appear below other hits?
Example using the same setup as before: Query: red frogs Result: both documents would be returned, but DocumentB would appear before DocumentA since it doesn't have any matching terms in the excludes field Again, thanks for your reply - it definitely satisfied my initial request. Ryan > string query should look like: "+includes:(red frogs) -excludes:(red > frogs)" > > You can play with MultiFieldQueryParser a bit. > > regards, > Volodymyr Bychkoviak > > Ryan Skow wrote: > >>Here is the logical structure of the document I'm working with: >> The 'Document' has two fields: >> 'includes' - List of terms that provide positive boost >> 'excludes' - List of terms that provide negative boost >> >>Here is a usage scenario: >> DocumentA >> includes: red green blue >> excludes: frogs birds snails >> >> DocumentB >> includes: red green blue >> excludes: <empty> >> >>Here is the desired effect for a couple query strings: >> Query: red >> Result: both documents would be returned with equal score >> >> Query: red frogs >> Result: only DocumentB would be returned because DocumentA excludes >> frogs >> >>My question is: can Lucene do this with a single query? One option is to >>do separate queries searching first the 'includes' and then on the >>'excludes' field, then removing documents from the 'includes' Hits that >>exist in the 'excludes' Hits. This solution to works, but is somewhat >>cumbersome and inefficient. >> >>I've tried calling excludesField.setBoost((float)-1) as well as passing >>small decimals in the setBoost method, but that still adds a smaller >> value >>to the score instead of subtracting from it. >> >>Has anyone solved this problem in better/different ways? >> >>Thanks! >> >> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [EMAIL PROTECTED] >>For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]