Re: Drill down facet for multi valued groups of fields

2015-10-05 Thread Douglas McGilvray
Hi Alessandro, thanks for the reply!

I wasn’t aware of nested documents, as you say, it seems precisely what I need 
.. in fact it looks like I plagiarised that article while writing my 
description hehe. Upgrading from 4.10 is a bit of work but, might just be worth 
it. 

Many Thanks!


Douglas


> On 5 Oct 2015, at 07:46, Alessandro Benedetti  
> wrote:
> 
> 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 :
> 
>> 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



Re: Drill down facet for multi valued groups of fields

2015-10-05 Thread Alessandro Benedetti
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 :

> 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


Drill down facet for multi valued groups of fields

2015-10-02 Thread Douglas McGilvray
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