Dear All, I have a requirement to search against multiple fields like title, description, annotations, comments, text and the query can contain multiple boolean operators. So, can someone point me out in right direction.
If the user enters a query like , - (day AND world) NOT night I want to form a query: *(title:day AND title:world NOT title:night) OR (description:day AND description:world NOT description:night) OR (annotations:day AND annotations:world NOT annotations:night) OR (comments:day AND comments:world NOT comments:night) OR (text:day AND text:world NOT text:night) * I've tried Lucene MultiFieldQueryParser to form the query and after some string manipulation tried producing a query as below, however it does not provide me correct relevancy. *(title:day OR description:day OR annotations:day OR comments:day OR text:day) AND (title:world OR description:world OR annotations:world OR comments:world OR text:world) NOT (title:night OR description:night OR annotations:night OR comments:night OR text:night)* For the record, the project is still on Solr 1.4 and hence I'm using Standard Query Parser (the upgrade is due in coming months). But for now, I need to make it work for above requirement. Please suggest if there is any straightforward approach or should I take the route of writing the QueryGrammar myself? Many Thanks, Sandeep