I'd thought this went into the black hole of feature requests never to return. ;)

I also agree that the single quote is probably a bad choice for an operator. In my code i'm actually using "#lit(<term>)" to make things as unambiguous as possible. (but this doesn't really follow the style of other Lucene query syntax operators)

And the reason I didn't use getFieldQuery is because it is using the analyzer to tokenize and would cause me to loose the raw terms, no? Maybe i'm not understanding the code here?

One thing to keep in mind is that literal queries will only work with Keyword fields. Literal searches will not work on fields that have been stemmed at indexing time. Perhaps the query parser could be made smart enough to do what the user wants here without them having to ask? Do we know at query time what options a particular field was indexed with?

- matt

On Sunday, February 23, 2003, at 02:35 AM, Otis Gospodnetic wrote:

Hello Matthew,

Nobody responded to this one.
Any strong opinions about including this from developers?
I thought this would be a useful thing, at first, but it may confuse
people (users, not developers) more if they search for 'some phrase
with stop words'.  Actually, the diff uses TermQuery, not QueryParser's
getFieldQuery method, so it wouldn't really work for phrases.
Matthew, how come you didn't use getFieldQuery, like it is done for
PhraseQuery, for instance?  That would allow you to support searching
for literal keywords/terms and phrases, I believe.

Does anyone think that including this would be a good idea?

Thanks,
Otis


--- Matthew King <[EMAIL PROTECTED]> wrote:
I just ran into a little problem while trying to query for a document

looking for a term that had been indexed using a Keyword field...

My application is using the StandardAnalyzer and the QueryParser to
search the index, so my query looked something like this:

kw:FOOBAR

not surprisingly (now that I know what's going on) I wasn't getting
any
hits from this search (because the QueryParser was normalizing the
query term be "foobar" when it had been indexed as "FOOBAR")

I know that i could create my own query to search for "FOOBAR", but
it
seems reasonable to add a LITERAL operator so that keywords can be
searched using the QueryParser, no?

Here's the diff for my stab at implementing it:

diff -r1.25 QueryParser.jj
319c319
<                           "[", "]", "\"", "{", "}", "~", "*", "?" ]

---
"[", "]", "\"", "{", "}", "~", "*", "?",

"'" ] > 321c321 < "[", "]", "\"", "{", "}", "~", "*", "?" ] ---
"[", "]", "\"", "{", "}", "~", "*",
"?",
"'" ]
350a351
| <LITERAL: "'" (~["'"])+ "'">
527a529,533
       }
     | term=<LITERAL>
       [ <CARAT> boost=<NUMBER> ]
       {
         q = new TermQuery(new Term(field, term.image.substring(1,

term.image.length()-1)));


I'm not so sure I like using the single quote here, but it was
available...

What do people think? Is this useful to others?

- matt


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



__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - forms, calculators, tips, more
http://taxes.yahoo.com/

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



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



Reply via email to