lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jigar Shah <jigaronl...@gmail.com>
Subject Re: Lucene Facets Module 4.8.1
Date Mon, 23 Jun 2014 13:18:21 GMT
Thanks this worked for me :)

Is there any advantage of indexing some facets as not providing any
indexFieldName ?

Thanks




On Mon, Jun 23, 2014 at 12:55 PM, Shai Erera <serera@gmail.com> wrote:

> There is no sample code for doing that but it's quite straightforward - if
> you know you indexed some dimensions under different indexFieldNames,
> initialize a FacetCounts per such field name, e.g.:
>
> FastTaxoFacetCounts defaultCounts = new FastTaxoFacetCounts(...); // for
> your regular facets
> FastTaxoFacetCounts cityCounts = new FastTaxoFacetCounts(...); // for your
> CITY facets
>
> Something like that...
>
> Shai
>
>
> On Mon, Jun 23, 2014 at 9:04 AM, Jigar Shah <jigaronline@gmail.com> wrote:
>
> > On commenting
> >
> > //config.setIndexFieldName("CITY", "city"); at search time, this is
> before
> > i do, getTopChildren(...)
> >
> > I get following exception.
> >
> > Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
> >     at
> >
> >
> org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts.count(FastTaxonomyFacetCounts.java:74)
> > [lucene-facet-4.8.1.jar:4.8.1 1594670 - rmuir - 2014-05-14 19:23:23]
> >     at
> >
> >
> org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts.<init>(FastTaxonomyFacetCounts.java:49)
> > [lucene-facet-4.8.1.jar:4.8.1 1594670 - rmuir - 2014-05-14 19:23:23]
> >     at
> >
> >
> org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts.<init>(FastTaxonomyFacetCounts.java:39)
> > [lucene-facet-4.8.1.jar:4.8.1 1594670 - rmuir - 2014-05-14 19:23:23]
> >     at
> >
> >
> org.apache.lucene.facet.DrillSideways.buildFacetsResult(DrillSideways.java:110)
> > [lucene-facet-4.8.1.jar:4.8.1 1594670 - rmuir - 2014-05-14 19:23:23]
> >     at
> org.apache.lucene.facet.DrillSideways.search(DrillSideways.java:177)
> > [lucene-facet-4.8.1.jar:4.8.1 1594670 - rmuir - 2014-05-14 19:23:23]
> >     at
> org.apache.lucene.facet.DrillSideways.search(DrillSideways.java:203)
> > [lucene-facet-4.8.1.jar:4.8.1 1594670 - rmuir - 2014-05-14 19:23:23]
> >
> > Application level excepitons.....
> > ...
> > ...
> >
> >
> >
> > On Sat, Jun 21, 2014 at 10:56 PM, Michael McCandless <
> > lucene@mikemccandless.com> wrote:
> >
> > > Are you sure it's the same FacetsConfig at search time?  Because the
> > > exception implies your CITY field didn't have
> > > config.setIndexFieldName("CITY", "city") called.
> > >
> > > Or, can you try commenting out 'config.setIndexFieldName("CITY",
> > > "city")' at index time and see if the exception still happens?
> > >
> > > Mike McCandless
> > >
> > > http://blog.mikemccandless.com
> > >
> > >
> > > On Sat, Jun 21, 2014 at 1:08 AM, Jigar Shah <jigaronline@gmail.com>
> > wrote:
> > > > Thanks for helping me.
> > > >
> > > > Yes, i did couple of things:
> > > >
> > > > Below is simple code for indexing which i use.
> > > >
> > > > TrackingIndexWriter nrtWriter
> > > > DirectoryTaxonomyWriter taxoWriter = ...
> > > > ....
> > > > FacetsConfig config = new FacetConfig();
> > > > config.setHierarchical("CITY", true)
> > > > config.setMultiValued("CITY", true);
> > > > config.setIndexFieldName("CITY","city") // I kept dimName different
> > from
> > > > indexFieldName
> > > > ....
> > > > Added indexing searchable fields...
> > > > ....
> > > >
> > > > doc.add( new FacetField("CITY", "India", "Gujarat", "Vadodara" ))
> > > > doc.add( new FacetField("CITY", "India", "Gujarat", "Ahmedabad" ))
> > > >
> > > >  nrtWriter.addDocument(config.build(taxoWriter, doc));
> > > >
> > > > Below is code which i use for searching
> > > >
> > > > TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoWriter);
> > > >
> > > > Query query = ...
> > > > IndexSearcher searcher = ...
> > > > DrillDownQuery ddq = new DrillDownQuery(config, query);
> > > > DrillSideways ds = new DrillSideways(searcher, config, taxoReader);
> //
> > > > Config object is same which i created before
> > > > DrillSidewaysResult result = ds.search(query, null, null, start +
> > limit,
> > > > null, true, true)
> > > > ...
> > > > Facets f = result.facets
> > > > FacetResult fr = f.getTopChildren(5, "CITY") [Exception is
> geneated]//
> > > > Didn't perform any drill-down,really, its just original query for
> first
> > > > time, but wrapped in DrillDownQuery.
> > > >
> > > > ... and below gives me empty collection.
> > > >
> > > > List<FacetResult> frs= f.getAllDims(5)
> > > >
> > > > I debug source code and found, it internally calls
> > > >
> > > > FastTaxonomyFacetCounts(indexFieldName, taxoReader, config) // Config
> > > > object is same which i created before
> > > >
> > > > which then calls
> > > >
> > > > IntTaxonomyFacets(indexFieldName, taxoReader, config) // Config
> object
> > is
> > > > same which i created before
> > > >
> > > > And during this calls the value of indexFieldName is "$facets defined
> > by
> > > > constant  'public static final String DEFAULT_INDEX_FIELD_NAME =
> > > "$facets";'
> > > > in FacetsConfig.
> > > >
> > > > My question is if i am using same FacetsConfig while indexing and
> > > > searching. why its not identifying correct name of field, and goes
> for
> > > > "$facets"
> > > >
> > > > Please correct me if i understood wrong. or correct way to solve
> above
> > > > problem.
> > > >
> > > > Many Thanks.
> > > > Jigar Shah.
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > > For additional commands, e-mail: java-user-help@lucene.apache.org
> > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message