On Apr 12, 2009, at 8:15 AM, Tim Williams wrote:

On Sun, Apr 12, 2009 at 5:56 AM, Erik Hatcher
<e...@ehatchersolutions.com> wrote:

On Apr 11, 2009, at 9:11 PM, Tim Williams wrote:

On Sat, Apr 11, 2009 at 12:25 PM, Erick Erickson
<erickerick...@gmail.com> wrote:

That'll teach me to scan a post. The link I sent you
is still relevant, but wildcards are NOT intended to be used to
concatenate terms. You want a phrase query or a span query
for that. i.e. "A C F"~# where # is the "slop", that is, the number
of other terms allowed to appear between your desired terms.

SpanQueries are constructed programmatically, and PhraseQueries
are produced by the parser.

As I understand it though, there's no way to use the queryparser to
construct an *ordered* phrase query with slop (which is what I think
he's after), right?  I gather that'd have to be done manually with a
SpanNearQuery. I'd love to hear that the query parser has syntax for
this though...

QueryParser does not create any SpanQuery's, but one can subclass
QueryParser and override getFieldQuery() to put in a SpanQuery instead of a
PhraseQuery.

Thanks Erik, wouldn't this be an all-or-nothing replacement though?
In other words, by creating ordered SpanNearQuery's as the override,
wouldn't he loose the current unordered PhraseQuery+slop
functionality?  I haven't seen a way to subclass the QueryParser to
support both (e.g. extend the syntax)?

As always, it depends. If the QueryParser subclass has a switch to toggle between SpanNearQuery and PhraseQuery it could controlled by the code which way to go. But yeah, it's not currently possible to extend the syntax of QueryParser with a subclass. There is a nice new open issue with a new query parser implementation that is vastly more flexible - we'll see that come in to Lucene in the near future.

        Erik


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to