Hi Douglas !
Your use case is a really good fit for Nested Objects in Solr[1]
After you model your problem in nested objects, you should play a little
bit with faceting at different levels ( parent/children).
A pivot faceting can be good  in some scenario, probably not in yours.
I would probably suggest to explain better how you want to search over your
documents.
After that you can think how to facet over the children.

Cheers

[1] http://yonik.com/solr-nested-objects/

2015-10-02 17:48 GMT+01:00 Douglas McGilvray <d...@weemondo.com>:

> 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




-- 
--------------------------

Benedetti Alessandro
Visiting card - http://about.me/alessandro_benedetti
Blog - http://alexbenedetti.blogspot.co.uk

"Tyger, tyger burning bright
In the forests of the night,
What immortal hand or eye
Could frame thy fearful symmetry?"

William Blake - Songs of Experience -1794 England

Reply via email to