Unexpected boolean query behavior
Here is my query: (virt* AND machine fingerprinting) OR (virt* AND encryption) OR (virt* AND anonymous) OR (virt* AND analytic*) AND owned:true It can be broken down to: (A) OR (B) OR (C) OR (D) AND E A, B, C and D are themselves AND boolean clauses. The E clause at the end is not behaving the way I would expect. No matter how I order the A,B,C and D clauses, it always returns the equivalent of ((D) AND E). When I add additional parentheses it behaves the way I expect. Like: ((A) OR (B) OR (C) OR (D)) AND E or (A) OR (B) OR (C) OR ((D) AND E) Can anyone explain why it behaves the way it does without the parentheses? Is there something I am missing in the way it processes boolean clauses? Thanks, Mark -- View this message in context: http://old.nabble.com/Unexpected-boolean-query-behavior-tp27166967p27166967.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Unexpected boolean query behavior
Mark, Does it help if you rewrite your query using +/- syntax (required, prohibited), or nothing for should? Because that's what happens under the hood (terms are required, prohibited, or should occur). Otis -- Sematext -- http://sematext.com/ -- Solr - Lucene - Nutch - Original Message From: markwaddle m...@markwaddle.com To: solr-user@lucene.apache.org Sent: Thu, January 14, 2010 2:39:21 PM Subject: Unexpected boolean query behavior Here is my query: (virt* AND machine fingerprinting) OR (virt* AND encryption) OR (virt* AND anonymous) OR (virt* AND analytic*) AND owned:true It can be broken down to: (A) OR (B) OR (C) OR (D) AND E A, B, C and D are themselves AND boolean clauses. The E clause at the end is not behaving the way I would expect. No matter how I order the A,B,C and D clauses, it always returns the equivalent of ((D) AND E). When I add additional parentheses it behaves the way I expect. Like: ((A) OR (B) OR (C) OR (D)) AND E or (A) OR (B) OR (C) OR ((D) AND E) Can anyone explain why it behaves the way it does without the parentheses? Is there something I am missing in the way it processes boolean clauses? Thanks, Mark -- View this message in context: http://old.nabble.com/Unexpected-boolean-query-behavior-tp27166967p27166967.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Unexpected boolean query behavior
That is a reasonable question. The problem here is that my users have already created numerous queries just like this one, using ANDs and ORs. My users are very technical and they have been using the results of these queries for months now to perform analysis that drives business decisions. I need an explanation for why this is happening so I can not only train them on how to use it more effectively, but also to restore their trust in the search application. Does anyone understand this behavior? Or can you recommend a place for me to look? Otis Gospodnetic wrote: Mark, Does it help if you rewrite your query using +/- syntax (required, prohibited), or nothing for should? Because that's what happens under the hood (terms are required, prohibited, or should occur). Otis -- Sematext -- http://sematext.com/ -- Solr - Lucene - Nutch - Original Message From: markwaddle m...@markwaddle.com To: solr-user@lucene.apache.org Sent: Thu, January 14, 2010 2:39:21 PM Subject: Unexpected boolean query behavior Here is my query: (virt* AND machine fingerprinting) OR (virt* AND encryption) OR (virt* AND anonymous) OR (virt* AND analytic*) AND owned:true It can be broken down to: (A) OR (B) OR (C) OR (D) AND E A, B, C and D are themselves AND boolean clauses. The E clause at the end is not behaving the way I would expect. No matter how I order the A,B,C and D clauses, it always returns the equivalent of ((D) AND E). When I add additional parentheses it behaves the way I expect. Like: ((A) OR (B) OR (C) OR (D)) AND E or (A) OR (B) OR (C) OR ((D) AND E) Can anyone explain why it behaves the way it does without the parentheses? Is there something I am missing in the way it processes boolean clauses? Thanks, Mark -- View this message in context: http://old.nabble.com/Unexpected-boolean-query-behavior-tp27166967p27166967.html Sent from the Solr - User mailing list archive at Nabble.com. -- View this message in context: http://old.nabble.com/Unexpected-boolean-query-behavior-tp27166967p27167750.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Unexpected boolean query behavior
HI Mark, Does this help? http://wiki.apache.org/lucene-java/BooleanQuerySyntax Otis -- Sematext -- http://sematext.com/ -- Solr - Lucene - Nutch - Original Message From: markwaddle m...@markwaddle.com To: solr-user@lucene.apache.org Sent: Thu, January 14, 2010 3:38:34 PM Subject: Re: Unexpected boolean query behavior That is a reasonable question. The problem here is that my users have already created numerous queries just like this one, using ANDs and ORs. My users are very technical and they have been using the results of these queries for months now to perform analysis that drives business decisions. I need an explanation for why this is happening so I can not only train them on how to use it more effectively, but also to restore their trust in the search application. Does anyone understand this behavior? Or can you recommend a place for me to look? Otis Gospodnetic wrote: Mark, Does it help if you rewrite your query using +/- syntax (required, prohibited), or nothing for should? Because that's what happens under the hood (terms are required, prohibited, or should occur). Otis -- Sematext -- http://sematext.com/ -- Solr - Lucene - Nutch - Original Message From: markwaddle To: solr-user@lucene.apache.org Sent: Thu, January 14, 2010 2:39:21 PM Subject: Unexpected boolean query behavior Here is my query: (virt* AND machine fingerprinting) OR (virt* AND encryption) OR (virt* AND anonymous) OR (virt* AND analytic*) AND owned:true It can be broken down to: (A) OR (B) OR (C) OR (D) AND E A, B, C and D are themselves AND boolean clauses. The E clause at the end is not behaving the way I would expect. No matter how I order the A,B,C and D clauses, it always returns the equivalent of ((D) AND E). When I add additional parentheses it behaves the way I expect. Like: ((A) OR (B) OR (C) OR (D)) AND E or (A) OR (B) OR (C) OR ((D) AND E) Can anyone explain why it behaves the way it does without the parentheses? Is there something I am missing in the way it processes boolean clauses? Thanks, Mark -- View this message in context: http://old.nabble.com/Unexpected-boolean-query-behavior-tp27166967p27166967.html Sent from the Solr - User mailing list archive at Nabble.com. -- View this message in context: http://old.nabble.com/Unexpected-boolean-query-behavior-tp27166967p27167750.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Unexpected boolean query behavior
That explains my exact problem, thank you! May I ask how you found that wiki posting? Otis Gospodnetic wrote: HI Mark, Does this help? http://wiki.apache.org/lucene-java/BooleanQuerySyntax Otis -- Sematext -- http://sematext.com/ -- Solr - Lucene - Nutch -- View this message in context: http://old.nabble.com/Unexpected-boolean-query-behavior-tp27166967p27170172.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Unexpected boolean query behavior
Try this: http://www.lucidimagination.com/search/?q=boolean+query On Thu, Jan 14, 2010 at 3:45 PM, markwaddle m...@markwaddle.com wrote: That explains my exact problem, thank you! May I ask how you found that wiki posting? Otis Gospodnetic wrote: HI Mark, Does this help? http://wiki.apache.org/lucene-java/BooleanQuerySyntax Otis -- Sematext -- http://sematext.com/ -- Solr - Lucene - Nutch -- View this message in context: http://old.nabble.com/Unexpected-boolean-query-behavior-tp27166967p27170172.html Sent from the Solr - User mailing list archive at Nabble.com. -- Lance Norskog goks...@gmail.com