Otis This is sort of situation we needed this functionality (and I should have given this example before to make the original post make more sense):
Where I work, we index (SMTP compliant) email using lucene. We need to index recipients that a "regular user" has search access to (To, CC, Apparently-To) under a separate field from BCC recipients (if any). If we indexed BCC under the same field as the other recipients, users of our system could (by accident or deliberately) find BCC recipients of an email by searching in the recipient field - which defeats the purpose of BCC (just because you received an email doesn't mean you should find out who it was bcc'd to). To special "audit users" we want to give permission to search bcc fields. However in our UI we don't want to use separate text fields (it's a web UI) for BCC recipients. If we did this, the audit user would have to do 4 separate searches to look for recipients: Joe AND Fred Namely (To stands for To,cc,apparently-to which are indexed under the same field) 1. (Joe AND Fred) in To 2. (Joe AND Fred) in BCC 3. (Joe in To) and (Fred in BCC) 4. (Fred in BCC) and (Joe in To) For more complicated search expressions this becomes tedious very quickly. So basically indexing under separate fields solves an access control problem for us - but introduces this other problem of doing the 4 searches above as one search. My implementation doesn't break existing QP functionality (we still have to support the non audit users and other fields - "from", "subject", "content" etc still use the old QP functionality). However the problem we had to solve here seems specialized - I can't easily think of situations where users may want this, but this may be lack of imagination on my part. BTW, I should also mention that the solution is general and does the kind of search in the example across and array of fields (not just 2 as in example). If you are still interested let me know and I'll send you the modified QueryParser.jj. Ali p.s. I think BCC is evil and do not use it myself ever:) --- Otis Gospodnetic <[EMAIL PROTECTED]> wrote: > Hello Ali, > > I'd be interested in the QueryParser.jj unified > diff, especially if it > preserves the existing QP functionality. > I'm also curious where you use such queries. I > think it may be > confusing to visualize this to novice users, but it > may be nice to have > support for this in the QueryParser that ships with > Lucene. > > Thanks, > Otis > > > --- Ali Rouhi <[EMAIL PROTECTED]> wrote: > > Just a note to anyone interested, I figured out > how to > > solve to problem I posed last week by adding the > > functionality needed to QueryParser.jj. It was a > > pretty specialized request to begin with - but > anyone > > interested - I'll be glad to let them know how it > > works. > > > > Ali > > > > --- Ali Rouhi <[EMAIL PROTECTED]> wrote: > > > Hi > > > > > > I need to perform a search for an expression in > > > multiple fields "as if" they were one field. > This is > > > best illustrated by a simple example. > > > > > > Find expression (X AND Y) in fields (F, G). > > > > > > I want this to translate to: > > > > > > ((X in F) OR (X in G)) AND ((Y in F) OR (Y in > G)) > > > > > > In other words I want the query to return true > *not > > > only* if > > > > > > ((X AND Y) in F) OR ((X AND Y) in G) > > > > (1) > > > > > > but *also* the following should give me a true > value > > > > > > ((X in F) AND (Y in G)) OR ((X in G) AND (Y in > F)) > > > (2) > > > > > > I believe that "MultiFieldQueryParser" just > gives me > > > (1) and leaves out the "cross terms" in(2).(If > you > > > want a practical example of why one would want > to do > > > such a search I would be glad to provide one). > > > > > > Of course I could construct the combination of > (1) > > > and > > > (2) manually, but the problem is that I want the > > > "general solution" with a general expression > being > > > searched for in multiple fields in the manner of > the > > > above example. > > > > > > I have a feeling that this sort of a thing is > best > > > done by writing a custom QueryParser.jj. We use > > > Lucene > > > in production code and have great java > expertise, > > > but > > > little JavaCC expertise. Suggestions for solving > the > > > problem at a higher level than the QueryParser > are > > > of > > > course also very welcome. > > > > > > Many Thanks > > > Ali > > > > > > > > > > > > __________________________________ > > > Do you Yahoo!? > > > SBC Yahoo! DSL - Now only $29.95 per month! > > > http://sbc.yahoo.com > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: > > > [EMAIL PROTECTED] > > > For additional commands, e-mail: > > > [EMAIL PROTECTED] > > > > > > > > > __________________________________ > > Do you Yahoo!? > > SBC Yahoo! DSL - Now only $29.95 per month! > > http://sbc.yahoo.com > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > [EMAIL PROTECTED] > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > __________________________________ > Do you Yahoo!? > SBC Yahoo! DSL - Now only $29.95 per month! > http://sbc.yahoo.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
