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

List:       lucene-user
Subject:    RE: lucene 3.0.3 | QueryParser | MultiFieldQueryParser
From:       Steven A Rowe <sarowe () syr ! edu>
Date:       2011-04-27 15:37:06
Message-ID: 2D127F11DC79714E9B6A43AC9458147FB3CE712C () suex07-mbx-03 ! ad ! syr ! edu
[Download RAW message or body]

Ranjit,

The problem is definitely the analyzer you are passing to QueryParser or \
MultiFieldQueryParser, and not the parser itself.

The following tests succeed using KeywordAnalyzer, which is a pass-through analyzer \
(the output is the same as the input):

  public void testSharpQP() throws Exception {
    Analyzer analyzer = new KeywordAnalyzer();
    QueryParser qp = new QueryParser
        (Version.LUCENE_30, "default_field", analyzer);
    assertEquals("+c# +.net", qp.parse
        ("c# AND .net").toString("default_field"));
  } 

  public void testSharpMFQP() throws Exception {
    Analyzer analyzer = new KeywordAnalyzer();
    String[] fields = { "one", "two"};
    MultiFieldQueryParser mfqp = new MultiFieldQueryParser
        (Version.LUCENE_30, fields, analyzer);
    assertEquals("+(one:c# two:c#) +(one:.net two:.net)", 
                 mfqp.parse("c# AND .net").toString());
  }

Steve

> -----Original Message-----
> From: Ranjit Kumar [mailto:Ranjit.Kumar@otssolutions.com]
> Sent: Wednesday, April 27, 2011 3:24 AM
> To: java-user-help@lucene.apache.org; java-user@lucene.apache.org
> Subject: Re: lucene 3.0.3 | QueryParser | MultiFieldQueryParser
> 
> Hi,
> while creating index with the help of  lucene standardAnalyzer, we cannot
> make difference between c, c++ and c# as lucene do not create index for
> c++ and c#. To make the difference between these term I need to change
> the grammar of lucene with the help of jFlex, it force me to create my
> own custom analyzer.
> 
> While I am searching for single term like c# I get correct result (also
> in the case of c++) So, lucene make index for C++ and c# . Also do not
> need to use any Parser. Hence,  jFlex doing it work properly.
> But, when I am trying to search for multiple Boolean query like c# AND
> .net  I need to use  MultiFieldQueryParser to get correct
> result(document). Then Parser stripping off # but do not dot(.) so query
> became c AND .net
> Also, I have made changes for c#.net, vb.net, .net all these work
> properly with MultiFieldQueryParser except c#
> 
> Thanks & Regards,
> Ranjit Kumar
> =========================================================================
> ========================== Private, Confidential and Privileged. This e-
> mail and any files and attachments transmitted with it are confidential
> and/or privileged. They are intended solely for the use of the intended
> recipient. The content of this e-mail and any file or attachment
> transmitted with it may have been changed or altered without the consent
> of the author. If you are not the intended recipient, please note that
> any review, dissemination, disclosure, alteration, printing, circulation
> or Transmission of this e-mail and/or any file or attachment transmitted
> with it, is prohibited and may be unlawful. If you have received this e-
> mail or any file or attachment transmitted with it in error please notify
> OTS Solutions at info@otssolutions.com
> =========================================================================
> ==========================


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

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