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.

Reply via email to