[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lucene-user
Subject:    Re: MultiPhraseQuery
From:       baris.kazar () oracle ! com
Date:       2018-09-18 21:34:09
Message-ID: 033f14ce-b611-a6b4-aaaf-4cb07a361674 () oracle ! com
[Download RAW message or body]

Ok, Mike, that was very helpful.

Now, i think i should use BooleanQuery with PhraseQueries but will 
PhraseQuery be able to handle all synonyms- multi or single term?

What is the best way for this:

i have multiple tokens and i want to be able to do a cheap fuzzy search.

Best regards


On 9/18/18 5:28 PM, Michael McCandless wrote:
> 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
> 
> https://urldefense.proofpoint.com/v2/url?u=http-3A__blog.mikemccandless.com&d=DwIFaQ \
> &c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=nlG5z5NcNdIbQAiX-BKNeyLlULCbaezrgoc \
> EvPhQkl4&m=tfPRxWsAx9P1XhVir6rL7WRf3iwK0jtYxnNnnhB9S90&s=yyRp_pK267aMSOlpWodQL-67wMhX3rb88aFr1YJ6lfk&e=
>  
> 
> On Wed, Sep 19, 2018 at 5:59 AM Erick Erickson <erickerickson@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.kazar@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.kazar@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=RoP1YumCXCgaWHv \
> > lZYR8PZh8Bv7qIrMUB65eapI_JnE&r=nlG5z5NcNdIbQAiX-BKNeyLlULCbaezrgocEvPhQkl4&m=7WmT3 \
> > NC9wzVk4FPBupACoALoL4kho6V7-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.kazar@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-unsubscribe@lucene.apache.org
> > > > > For additional commands, e-mail: java-user-help@lucene.apache.org
> > > > > 
> > > > 
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > > > For additional commands, e-mail: java-user-help@lucene.apache.org
> > > > 
> > > 
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > > For additional commands, e-mail: java-user-help@lucene.apache.org
> > > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > For additional commands, e-mail: java-user-help@lucene.apache.org
> > 
> > 


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic