[
https://issues.apache.org/jira/browse/LUCENE-3426?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13102271#comment-13102271
]
Robert Muir commented on LUCENE-3426:
-------------------------------------
Hi Koji, I wonder if instead it would be cleaner as a subclass of PhraseQuery
(NGramPhraseQuery or similar),
that rewrites to the (possibly optimized) PhraseQuery in rewrite(). For
example, it would build an optimized
PhraseQuery when slop = 0, and there are enough terms to optimize, otherwise it
would build a "normal" phrasequery.
Then the optimization would be easy to apply, the user just uses
NGramPhraseQuery instead of PhraseQuery.
for example, from QueryParser:
{noformat}
@Override
protected PhraseQuery newPhraseQuery() {
return new NGramPhraseQuery();
}
{noformat}
> optimizer for n-gram PhraseQuery
> --------------------------------
>
> Key: LUCENE-3426
> URL: https://issues.apache.org/jira/browse/LUCENE-3426
> Project: Lucene - Java
> Issue Type: Improvement
> Components: core/search
> Reporter: Koji Sekiguchi
> Priority: Trivial
> Attachments: LUCENE-3426.patch, LUCENE-3426.patch, PerfTest.java
>
>
> If 2-gram is used and the length of query string is 4, for example q="ABCD",
> QueryParser generates (when autoGeneratePhraseQueries is true)
> PhraseQuery("AB BC CD") with slop 0. But it can be optimized PhraseQuery("AB
> CD") with appropriate positions.
> The idea came from the Japanese paper "N.M-gram: Implementation of Inverted
> Index Using N-gram with Hash Values" by Mikio Hirabayashi, et al. (The main
> theme of the paper is different from the idea that I'm using here, though)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]