I'd *strongly* advise doing it the simple way, that is, your replace.

1> it's simple and understandable.
2> next time you upgrade Lucene you, or the next poor programmer, will have
to remember/reimplement your change to the parser.
3> How will you insure that others in your organization (and you 6 months
from now) won't spend lots of time wondering why ':' didn't work as a field
separator in the query parser? I flat guarantee this will cause you grief...
4> I don't want Otis, Erik and Yonik to have to spend time answering the
question "Why isn't ':' working as a field separator?" <G>.

Best
Erick

On 2/22/07, Felix Litman <[EMAIL PROTECTED]> wrote:

OK. Thank you.  We'll have to consider using this approach.

  I guess the drawback here is that ":" will not longer work as a field
operator. ?:-(

  We were also considering using the following approach.

  String newquery = query.replace(query, ": ", " ");

  It seems this way a colon should still work as a field operator if
followed by a query term with no space in between

  Thanks,
  Felix.

Antony Bowesman <[EMAIL PROTECTED]> wrote:
  Felix Litman wrote:
> Yes. thank you. How did you make that modification not to treat ":" as a
field-name terminator?
>
> Is it using this Or some other way?

I removed the : handling stuff from QueryParser.jj in the method:

Query Clause(String field) :

I removed this section
---
[
LOOKAHEAD(2)
(
fieldToken= {field=discardEscapeChar(fieldToken.image);}
| {field="*";}
)
]
---

and you can also remove the COLON and : related bits to do with start
terms and
escaped chars if you want to exclude treating : as a separator, but from
memory,
it's the above section that does the field recognition.

Antony


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



Reply via email to