Well the field is "Id" - which contains unique, non-recurring terms. So I don't think mapping it to Field.Index.ANALYZED makes sense, does it? If it is mapped as NOT_ANALYZED, it is still indexed, so should I be able to issue a query like "Id:BAUER*" ?
On Tue, Jun 26, 2012 at 3:06 PM, Lingam, ChandraMohan J < chandramohan.j.lin...@intel.com> wrote: > QueryParser has no knowledge of how data was indexed. For your scenario, > I don't believe you would be able to use Query Parser with standard > analyzer when data was originally indexed with Field.Index.NOT_ANALYZED > option. > > Interesting question is why is luke working/finding the match? I would > have expected Luke to not find any matches. > > > -----Original Message----- > From: Rob Cecil [mailto:rob.ce...@gmail.com] > Sent: Tuesday, June 26, 2012 12:54 PM > To: lucene-net-user@lucene.apache.org > Subject: Re: SPAM-HIGH: Disparity between API usage and Luke > > I can definitely try that. I just expected QueryParser would respect the > case of the source string. I was hoping to avoid using the Query API > per-se, and just let the parser to the work for me. > > On Tue, Jun 26, 2012 at 1:19 PM, Lingam, ChandraMohan J < > chandramohan.j.lin...@intel.com> wrote: > > > >> var query = _parser.Parse("Id:BAUER*"); > > > > In your code, most likely, the value got converted to lower case (i.e. > > bauer*) by the parse statement. > > Whereas indexed value is in upper case as it is not analyzed (from > > screen shot). > > > > Can you explicitly try using prefix query? > > > > > > > > > Same results, apparently, when I use Luke 1.0.1. > > > > > > When I search for "Id:BAUER*" I get 15 hits in Luke, but in my > > > custom app, zero. > > > > > > On Tue, Jun 26, 2012 at 12:31 PM, Rob Vesse <rve...@dotnetrdf.org> > > wrote: > > > > > > > You appear to be using Luke 3.5 which per the information on the > > > > Luke homepage (http://code.google.com/p/luke/) uses Lucene 3.5 > > > > > > > > Since Lucene.Net is currently on 2.9.4 I wouldn't be surprised to > > > > see different behavior between the API and executing in Luke. > > > > > > > > If you use a version of Luke which more closely aligns with the > > > > version > > > of > > > > Lucene.Net (Luke 1.0.1 uses Lucene 3.0.1 which should be close > > > > enough since the 2.9.x releases were previews of the 3.0.x > > > > releases as I understood it) what behavior do you see? > > > > > > > > Hope this helps, > > > > > > > > Rob > > > > > > > > On 6/26/12 10:50 AM, "Rob Cecil" <rob.ce...@gmail.com> wrote: > > > > > > > > >If I run a query against my index using QueryParser to query a > field: > > > > > > > > > > var query = _parser.Parse("Id:BAUER*"); > > > > > var topDocs = searcher.Search(query, 10); > > > > > Assert.AreEqual(count, topDocs.TotalHits); > > > > > > > > > >I get 0 for my TotalHits, yet in Luke, the same query phrase > > > > >yields > > > > >15 results, what am I doing wrong? I use the StandardAnalyzer > > > > >both to create the index and to query. > > > > > > > > > >The field is defined as: > > > > > > > > > >new Field("Id", myObject.Id, Field.Store.YES, > > > > >Field.Index.NOT_ANALYZED) > > > > > > > > > >and is a string field. The result set back from Luke looks like > > > > >(screencap): > > > > > > > > > >http://screencast.com/t/NooMK2Rf > > > > > > > > > >Thanks! > > > > > > > > > > > > > > > > > > > > > > > > > >