Hi everyone, my first post to the list! I tried and failed to explain this on 
IRC, I hope I can do a better job here.   

My document has a group of text fields: company, location, year. The group can 
have multiple values and I would like to facet (drill down) beginning with any 
of the three fields. The order of the groups is not important.

Example Doc1: 
{company1: Bolts, location1: NY, year1: 2002}
{company2: Nuts,  location2: SF, year2: 2010}

If I select two filters: fq=company:Bolts && fq=location:SF, Doc1 should not be 
in the results, because although the two individual values occur in the 
document, they are not within the same group.  

Following the instructions for facet.prefix based drill down (the link will 
explain this far better than I can)
https://wiki.apache.org/solr/HierarchicalFaceting#A.27facet.prefix.27__Based_Drill_Down
I can create a custom field lets call it cly  which represents a drill-down 
hierarchy company > location > year
So For the document above it would contain the following:

0:Bolts
1:Bolts>NY
2:Bolts>NY>2002
0:Nuts
1:Nuts>SF
2:Nuts>SF>2010

I can retrieve the facets for the Company using: facet.field={!key=company 
facet.prefix=“0:”}cly

If the user selects the company Bolts, I can filter the values using: 
fq=cly:”0:Bolts”
And I can retrieve the facets for the location using facet.field={!key=location 
facet.prefix=“1:Bolts”}cly

This is fine if I want to drill down company location year, but what if, after 
selecting company I now want to select year? I make a field for each 
combination of values: cly, cyl, lyc …..

If the user selects Bolts, I can now retrieve the facets for year using 
facet.field={!key=year facet.prefix=“1:Bolts”}cyl (NB the order of the letters 
here)

I hope the above makes sense, even if the idea itself is completely crazy. 
Obviously the number of extra fields is factorial. I cant believe I am the 
first person to want to do this type of search, which makes me think there is 
probably another (better) way to do this. Is there?

King Regards and many thanks in advance,
Douglas

Reply via email to