lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Lea <ian....@gmail.com>
Subject Re: Multiphrase Query in Lucene 4.3
Date Mon, 30 Sep 2013 09:31:01 GMT
Whenever someone says something along the lines of a search for
"geoffrey" not matching "Geoffrey" the case difference springs out,
Can't recall what if anything you said about the analysis side of
things but that could be the cause.  See
http://wiki.apache.org/lucene-java/LuceneFAQ#Why_am_I_getting_no_hits_.2F_incorrect_hits.3F

If on the other hand the problem is more obscure, and only related to
the multi phrase stuff, I suggest you build a tiny but complete
RAMDirectory based program or test case that shows the problem and
post it here.


--
Ian.



On Mon, Sep 30, 2013 at 6:46 AM, VIGNESH S <vigneshklncit@gmail.com> wrote:
> Hi,
>
> Thanks for your Reply.The Problem I face is there is a word called Geoffrey
> Romer in my Field.
>
> I am Forming a Multiphrase query object properly like " Geoffrey Romer".But
> When i do a Search,it is not returning Hits.This Problem I am facing is not
> for all phrases
> This Problem happens for only few Phrases.
>
> When i do a single query like Geoffrey it is giving a Hit..But when i do it
> in MultiphraseQuery it is not able to find "geoffrey". I confirmed this by
> doing trm.seekCeil(new BytesRef("Geoffrey"))  and then and then when i
> do String s = trm.term().utf8ToString().It is pointing to a diffrent word
> instead of geoffrey.seekceil is working properly for many phrases though.
>
> What could be the problem..please kindly suggest.
>
>
>
> On Fri, Sep 27, 2013 at 6:58 PM, Allison, Timothy B. <tallison@mitre.org>wrote:
>
>> 1) An alternate method to your original question would be to do something
>> like this (I haven't compiled or tested this!):
>>
>> Query q = new PrefixQuery(new Term("field", "app"));
>>
>> q = q.rewrite(indexReader) ;
>> Set<Term> terms = new HashSet<Term>();
>> q.extractTerms(terms);
>> Term[] arr = terms.toArray(new Term[terms.size()]);
>> MultiPhraseQuery mpq = new MultiPhraseQuery();
>> mpq.add(new Term("field", "microsoft");
>> mpq.add(arr);
>>
>>
>> 2) At a higher level, do you need to generate your query programmatically?
>>  Here are three parsers that could handle this:
>>   a) ComplexPhraseQueryParser
>>   b) SurroundQueryParser: oal.queryparser.surround.parser.QueryParser
>>   c) experimental: <self_promotion degree="shameless">
>> http://issues.apache.org/jira/browse/LUCENE-5205</self_promotion>
>>
>>
>> -----Original Message-----
>> From: VIGNESH S [mailto:vigneshklncit@gmail.com]
>> Sent: Friday, September 27, 2013 3:33 AM
>> To: java-user@lucene.apache.org
>> Subject: Re: Multiphrase Query in Lucene 4.3
>>
>> Hi,
>>
>> The word i am giving is "Romer Geoffrey ".The Word is in the Field.
>>
>>  trm.seekCeil(new BytesRef("Geoffrey")) and then when i do String s =
>> trm.term().utf8ToString(); and hence
>>
>> It is giving a diffrent word..I think this is why my multiphrasequery is
>> not giving desired results.
>>
>> What may be the reason..
>>
>>
>>
>>
>> On Fri, Sep 27, 2013 at 11:49 AM, VIGNESH S <vigneshklncit@gmail.com>
>> wrote:
>>
>> > Hi Lan,
>> >
>> > Thanks for your Reply.
>> >
>> > I am doing similar to this only..In MultiPhraseQuery object actual phrase
>> > is going proper but it is not returning any hits..
>> >
>> > In Lucene 3.6,I implemented the same logic and it is working.
>> >
>> > In Lucene 4.3,I implemented the Index for that  using
>> >
>> >  FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
>> >
>> >
>>  offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
>> >
>> > For MultiphraseQuery, whether I need to add any other parameter in
>> > addition to this while indexing?
>> >
>> > Is there any MultiPhraseQueryTest java file for Lucene 4.3? I checked in
>> > Lucene branch and i was not able to find..Please kindly help.
>> >
>> >
>> >
>> >
>> >
>> >
>> > On Thu, Sep 26, 2013 at 2:55 PM, Ian Lea <ian.lea@gmail.com> wrote:
>> >
>> >> I use the code below to do something like this.  Not exactly what you
>> >> want but should be easy to adapt.
>> >>
>> >>
>> >> public List<String> findTerms(IndexReader _reader,
>> >>                               String _field) throws IOException {
>> >>   List<String> l = new ArrayList<String>();
>> >>   Fields ff = MultiFields.getFields(_reader);
>> >>   Terms trms = ff.terms(_field);
>> >>   TermsEnum te = trms.iterator(null);
>> >>   BytesRef br;
>> >>   while ((br = te.next()) != null) {
>> >>     l.add(br.utf8ToString());
>> >>   }
>> >>   return l;
>> >> }
>> >>
>> >> --
>> >> Ian.
>> >>
>> >> On Wed, Sep 25, 2013 at 3:04 PM, VIGNESH S <vigneshklncit@gmail.com>
>> >> wrote:
>> >> > Hi,
>> >> >
>> >> > In the Example of Multiphrase Query it is mentioned
>> >> >
>> >> > "To use this class, to search for the phrase "Microsoft app*" first
>> use
>> >> > add(Term) on the term "Microsoft", then find all terms that have "app"
>> >> as
>> >> > prefix using IndexReader.terms(Term), and use
>> >> MultiPhraseQuery.add(Term[]
>> >> > terms) to add them to the query"
>> >> >
>> >> >
>> >> > How can i replicate the Same in Lucene 4.3 since
>> >> IndexReader.terms(Term) is
>> >> > no more used
>> >> >
>> >> > --
>> >> > Thanks and Regards
>> >> > Vignesh Srinivasan
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> >> For additional commands, e-mail: java-user-help@lucene.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > Thanks and Regards
>> > Vignesh Srinivasan
>> > 9739135640
>> >
>>
>>
>>
>> --
>> Thanks and Regards
>> Vignesh Srinivasan
>> 9739135640
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
>
>
> --
> Thanks and Regards
> Vignesh Srinivasan
> 9739135640

---------------------------------------------------------------------
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