[ 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org