lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From baris.ka...@oracle.com
Subject Re: MultiPhraseQuery
Date Tue, 18 Sep 2018 20:56:04 GMT
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=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.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


Mime
View raw message