> And if you have configured an analyzer that includes a query-time
> filter, it should be invoked, regardless of whether a phrase query is
> constructed.

sorry steve i failed to explain this so clearly.

Without phrasing the ShingleFilter is indeed invoked.
But it is used three separate times for each term
 1) abcd
 2) efgh
 3) ijkl
So there is no shingles generated.

With phrasing the ShingleFilter it is used once
 1) abcd efgh ijkl
And so all the shingles are generated.

I do not know how Solr and Lucene well enough to appreciate how the
query parsing is working together here.

But what i do see, just within
no.apache.jakarta.lucene.queryParser.QueryParser.getFieldQuery(..)
is that there are three possible return values:
 BooleanQuery, MultiPhraseQuery, or PhraseQuery.

The remaining alternative is BooleanQuery and that happens when
positionCount (which is the sum of all the tokens' positionIncrements)
equals one. That's even tougher to achieve.

~mck

-- 
"Driving ambition is the last refuge of the failure." Oscar Wilde 
| semb.wever.org | sesat.no | sesam.no |

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to