[ https://issues.apache.org/jira/browse/LUCENE-6717?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael McCandless updated LUCENE-6717: --------------------------------------- Attachment: LUCENE-6717.patch Patch, I think it's ready, tests pass. When there are 2 or more required terms, I use ConjunctionDISI, else if there's 1 required term, I use its DISI, else I just do the same logic it did before. I also reworked how the scorer inits positions (do it only later, when it's time to walk the positions) and implemented needsScores. > TermAutomatonQuery should be two-phased > --------------------------------------- > > Key: LUCENE-6717 > URL: https://issues.apache.org/jira/browse/LUCENE-6717 > Project: Lucene - Core > Issue Type: Improvement > Reporter: Michael McCandless > Assignee: Michael McCandless > Attachments: LUCENE-6717.patch > > > {{TermAutomatonQuery}} (still in sandbox) is a simple way to get accurate > query-time multi-token synonyms using the new {{SynonymGraphFilter}} from > LUCENE-6664. It already has a utility class to directly translate an > incoming {{TokenStream}} into a corresponding query. > However the query is likely quite slow because it always iterates positions > for all terms in the automaton. > I think one simple approach is to walk the automaton and find the subset of > terms (if any) that appear in common to all paths, and then approximate with > {{ConjunctionDISI}} like {{PhraseQuery}} does. Such a subset doesn't always > exist for an automaton (i.e. it could be empty), so the logic would have to > be conditional... > And I think there are more complex approximations we could make, but using > {{ConjunctionDISI}} seems like a simple start. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org