Thanks very much for this valuable information.

Good to know that, same indexFieldName can be used for multiple (similar in
some cases) dimensions.

For sure this will help me to design application better.

Thanks once again.


On Mon, Jun 23, 2014 at 7:00 PM, Shai Erera <ser...@gmail.com> wrote:

> Basically, it's not very common to change the indexFieldName. You should do
> that in case you e.g. count facets in groups of dimensions, rather than
> counting all of them. So for example, if you have 20 dimensions, but you
> know you only count d1-d5, d6-d12 and d13-d20, then if you separate them to
> 3 different indexFieldNames will probably improve performance.
>
> But if you can't make such a decision, it's better to not modify this. When
> you initialize a FacetCounts, it counts all the dimensions that are indexed
> under that indexFieldName, so if you need the counts of all of them, or the
> majority of them, that's ok. But if you know you *always* need the count of
> a subset of them, then separating that subset to a different field is
> better.
>
> Hope that clarifies.
>
> Shai
>
>
> On Mon, Jun 23, 2014 at 4:18 PM, Jigar Shah <jigaronl...@gmail.com> wrote:
>
> > 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 <ser...@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 <jigaronl...@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 <
> > > > luc...@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 <jigaronl...@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-unsubscr...@lucene.apache.org
> > > > > For additional commands, e-mail: java-user-h...@lucene.apache.org
> > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to