Yes, +1 for a patch to improve the docs! MultiPhraseQuery only works for single term synonyms, and is usually produced by query parsers when the incoming query text had single term synonyms matching, I think? The query parser will use other (span?) queries for multi token synonyms.
I think the example in the javadoc should be simplified to not use "app*", e.g. maybe just matching "Microsoft Excel|Word"? Mike McCandless http://blog.mikemccandless.com On Wed, Sep 19, 2018 at 5:59 AM Erick Erickson <erickerick...@gmail.com> wrote: > bq. i wish the Javadocs has examples like PhraseQuery Javadocs gave. > > This is where someone coming into the examples for the first time is > invaluable, javadoc patches are most welcome! It can be hard to back > off enough to remember what the confusing bits are when you wrote the > code ;) > On Tue, Sep 18, 2018 at 1:56 PM <baris.ka...@oracle.com> wrote: > > > > Any suggestions please? > > Two main questions: > > - how do synonyms get utilized by MultiPhraseQuery? > > - how do we get second token "app" applied to the example on > > MultiPhraseQuery javadocs page? (and how do we get Terms[] array from > > Terms object?) > > > > Now three questions :) > > > > i wish the Javadocs has examples like PhraseQuery Javadocs gave. > > > > Best > > > > On 9/18/18 4:45 PM, baris.ka...@oracle.com wrote: > > > Trying to implement the example on > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__lucene.apache.org_core_6-5F6-5F1_core_org_apache_lucene_search_MultiPhraseQuery.html&d=DwIDaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=nlG5z5NcNdIbQAiX-BKNeyLlULCbaezrgocEvPhQkl4&m=7WmT3NC9wzVk4FPBupACoALoL4kho6V7-c2o4Kac5QM&s=gM6_4hvpLEZY1_7r-CEInZbUb-ublYDcJOQ8rmeAgVA&e= > > > > > > // A generalized version of PhraseQuery, with the possibility of > > > adding more than one term at the same position that are treated as a > > > disjunction (OR). To use this class to search for the phrase > > > "Microsoft app*" first create a Builder and use > > > > > > // MultiPhraseQuery.Builder.add(Term) on the term "microsoft" > > > (assuming lowercase analysis), then find all terms that have "app" as > > > prefix using LeafReader.terms(String), seeking to "app" then iterating > > > and collecting terms until there is no longer that prefix, > > > > > > // and finally use MultiPhraseQuery.Builder.add(Term[]) to add them. > > > MultiPhraseQuery.Builder.build() returns the fully constructed (and > > > immutable) MultiPhraseQuery. > > > > > > > > > IndexSearcher is = new IndexSearcher(indexReader); > > > > > > MultiPhraseQuery.Builder builder = new MultiPhraseQuery.Builder(); > > > builder.add(new Term("body", "one"), 0); > > > > > > Terms terms = LeafReader.terms("body"); // will this be slow? and how > > > do we incorporate token/word "app" here? > > > > > > // i STILL dont see how to get individual Term objects from terms > > > object and plus do i need to declare LeafReader object? > > > > > > Term[] termArr = new Term[k]; // i will get this filled via using > > > Terms.iterator > > > builder.add(termArr); > > > MultiPhraseQuery mpq = builder.build(); > > > TopDocs hits = is.search(mpq, 20);// 20 hits > > > > > > > > > Best regards > > > > > > > > > On 9/18/18 4:16 PM, baris.ka...@oracle.com wrote: > > >> Hi,- > > >> > > >> how does MultiPhraseQuery treat synonyms? > > >> > > >> is the following possible? > > >> > > >> ... (created index with synonyms and indexReader object has the index) > > >> > > >> IndexSearcher is = new IndexSearcher(indexReader); > > >> > > >> MultiPhraseQuery.Builder builder = new MultiPhraseQuery.Builder(); > > >> builder.add(new Term("body", "one"), 0); > > >> builder.add(new Term("body", "two"), 1); > > >> MultiPhraseQuery mpq = builder.build(); > > >> TopDocs hits = is.search(mpq, 20);// 20 hits > > >> > > >> Best regards > > >> > > >> > > >> --------------------------------------------------------------------- > > >> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > > >> For additional commands, e-mail: java-user-h...@lucene.apache.org > > >> > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > > > For additional commands, e-mail: java-user-h...@lucene.apache.org > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > > For additional commands, e-mail: java-user-h...@lucene.apache.org > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > >