I don't believe there's anything built into Lucene that helps you out here
because you're really saying "do special things for my problem space
in these situations".

So about the only thing you can do that I know of is to construct the
query yourself by making a series of additions to BooleanQuery
based on your particular problem space.

Which you have to do anyway because you want to turn a simple
michael query into
to:michael from:micheal contents:michael subject:michael
(note default or)....

So you'll have to do something like
if (term has colon) {
   just add boolean clause for that term in that field
} else {
  add all four clauses
}

However, be warned...... this is not a trivial task if you want to
support arbitrary grouping, implement precedence, etc. Search
the list for "bad query bug" for an explanation, or go to the FAQ and
look at something like "why don't I get what I expect from queries".
In fact, you really need to look at and understand that FAQ entry
before you let Lucene loose on queries with AND, OR and NOT
in them. It'll be well worth your time......

One final note, it may be much easier for you to throw all the
fields into a single uber-field and search that rather than implement
all four separate clauses, but it's a trade off between simplicity and
size.....

Best
Erick

On 3/23/07, Michael J. Prichard <[EMAIL PROTECTED]> wrote:

Hello All,

We allow our users to search through our index with a simple textfield.
The search phrase has "content" as its default value.  This allows them
to search quickly through content but then when they type "to:blah AND
from:foo AND content:boogie" it will know to parse,etc.

What I want to do it expand it so when they type a phrase in the
textfield it will search select all at once and still be smart enough to
recognize a lucene query.

For example,  say we have these fields:

to
from
content
subject

When I type "michael contract negotiation" it will look through all
these fields and return hits.

Then it should be able to recognize more advance searches like:

to:michael AND content:foo

and not go through all fields....

Am I making sense?  Is this a good way to provide search?  How would I
do this?

Thanks,
Michael


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to