Hi Jeff, I don't know of a query parser that will allow you to acheive this.
However, if you can programmatically construct (at least a component of) your queries, then you may want to check out Lucene's SpanQuery functionality. In particular, using your example, if you combine a SpanFirstQuery over a SpanNearQuery on "white house" (to cover the case of "white house" at the beginning of a field) with a SpanNearQuery over a SpanRegexQuery for (?!russian$) - i.e., anything but "russian" - and another SpanNearQuery on "white house", you may get what you want. In a lisp-ish query-like syntax: {or:{first:{near~0:white house}}{near~0:{regex:(?!russian)}{near~0:white house}} <http://lucene.apache.org/java/2_3_2/api/org/apache/lucene/search/spans/SpanQuery.html> Steve On 08/11/2008 at 7:18 PM, Jeff French wrote: > > We're trying to perform a query where if our intended search term/phrase > is part of a specific larger phrase, we want to ignore that particular > match, but not the entire document (unless of course there are no other > hits with our intended term/phrase). For example, a query like: > > "white house" UNLESS "russian white house" > > should not produce a match on the phrase: > > "russian white house" > > but should match: > > "white house" > > Where this differs from the NOT operator is that we don't want to rule > out a document just because it contains "russian white house", we just > want to ignore the hit, so that this phrase: > > "... in the russian white house as opposed to the american white house > ..." > > would return the document. > > Can this be accomplished using Lucene or Qsol QueryParser syntax, or do > we need to write something custom? > -- > View this message in context: > http://www.nabble.com/Query-to-ignore-certain-phrases-tp18935560p18935560.html > > Sent from the Lucene - Java Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]