You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by rajini maski <ra...@gmail.com> on 2011/03/11 09:34:16 UTC

Query on facet field’s count

Query on facet field results...


       When I run a facet query on some field say : facet=on &
facet.field=StudyID I get list of distinct StudyID list with the count that
tells that how many times did this study occur in the search query.  But I
also needed the count of these distinct StudyID list.. Any solr query to get
count of it..



Example:



   <lst name="*facet_fields*">

    <lst name=" StudyID ">

  <int name="*105*">135164</int>

  <int name="*179*">79820</int>

  <int name="*107*">70815</int>

  <int name="*120*">37076</int>

  <int name="*134*">35276</int>

  </lst>

</lst>



I wanted the count attribute that shall return the count of number of
different studyID occurred .. In above example  it could be  : Count = 5
(105,179,107,120,134)



<lst name="*facet_fields*">

 <lst name=" StudyID "  COUNT=5 >

  <int name="*105*">135164</int>

  <int name="*179*">79820</int>

  <int name="*107*">70815</int>

  <int name="*120*">37076</int>

  <int name="*134*">35276</int>

  </lst>

</lst>

Re: Query on facet field¹s count

Posted by William Bell <bi...@gmail.com>.
My patch is for 4.0 trunk.

On Fri, Mar 11, 2011 at 10:05 PM, rajini maski <ra...@gmail.com> wrote:
> Thanks Bill Bell . .This query works after applying the patch you refered
> to, is it? Please can you let me know how do I need to update the current
> war (apache solr 1.4.1 )file with this new patch? Thanks a lot.
>
> Thanks,
> Rajani
>
> On Sat, Mar 12, 2011 at 8:56 AM, Bill Bell <bi...@gmail.com> wrote:
>
>> http://localhost:8983/solr/select?q=*:*&facet=true&facet.field=StudyID&face
>> t.mincount=1&facet.limit=-1&f.StudyID.facet.namedistinct=1
>>
>> Would do what you want I believe...
>>
>>
>>
>> On 3/11/11 8:51 AM, "Bill Bell" <bi...@gmail.com> wrote:
>>
>> >There is my patch to do that. SOLR-2242
>> >
>> >Bill Bell
>> >Sent from mobile
>> >
>> >
>> >On Mar 11, 2011, at 1:34 AM, rajini maski <ra...@gmail.com> wrote:
>> >
>> >> Query on facet field results...
>> >>
>> >>
>> >>       When I run a facet query on some field say : facet=on &
>> >> facet.field=StudyID I get list of distinct StudyID list with the count
>> >>that
>> >> tells that how many times did this study occur in the search query.
>> >>But I
>> >> also needed the count of these distinct StudyID list.. Any solr query
>> >>to get
>> >> count of it..
>> >>
>> >>
>> >>
>> >> Example:
>> >>
>> >>
>> >>
>> >>   <lst name="*facet_fields*">
>> >>
>> >>    <lst name=" StudyID ">
>> >>
>> >>  <int name="*105*">135164</int>
>> >>
>> >>  <int name="*179*">79820</int>
>> >>
>> >>  <int name="*107*">70815</int>
>> >>
>> >>  <int name="*120*">37076</int>
>> >>
>> >>  <int name="*134*">35276</int>
>> >>
>> >>  </lst>
>> >>
>> >> </lst>
>> >>
>> >>
>> >>
>> >> I wanted the count attribute that shall return the count of number of
>> >> different studyID occurred .. In above example  it could be  : Count = 5
>> >> (105,179,107,120,134)
>> >>
>> >>
>> >>
>> >> <lst name="*facet_fields*">
>> >>
>> >> <lst name=" StudyID "  COUNT=5 >
>> >>
>> >>  <int name="*105*">135164</int>
>> >>
>> >>  <int name="*179*">79820</int>
>> >>
>> >>  <int name="*107*">70815</int>
>> >>
>> >>  <int name="*120*">37076</int>
>> >>
>> >>  <int name="*134*">35276</int>
>> >>
>> >>  </lst>
>> >>
>> >> </lst>
>>
>>
>>
>

Re: Query on facet field¹s count

Posted by rajini maski <ra...@gmail.com>.
Sorry for the late reply to this thread.

I implemented the same patch (solr 2242 )in Solr 1.4.1. Now I am able to
get distinct facet terms count across single index. But this does not work
for distributed process(sharding)..Is there a recent patch that has same
functionality for distributed process?


It works for the below query:
"
http://localhost:8983/solr/select?q=*:*&facet=true&facet.field=StudyID&facet.mincount=1&facet.limit=-1&f.StudyID.facet.namedistinct=1
"

It doesn't work for :
http://localhost:8983/solr/select?q=*:*&facet=true&facet.field=StudyID&facet.mincount=1&facet.limit=-1&f.StudyID.facet.namedistinct=1
&shards=localhost:8090/solr2

It gets matched result set from both the cores but facet results are only
from first core.

Rajani


On Sat, Mar 12, 2011 at 10:35 AM, rajini maski <ra...@gmail.com>wrote:

> Thanks Bill Bell . .This query works after applying the patch you refered
> to, is it? Please can you let me know how do I need to update the current
> war (apache solr 1.4.1 )file with this new patch? Thanks a lot.
>
> Thanks,
> Rajani
>
> On Sat, Mar 12, 2011 at 8:56 AM, Bill Bell <bi...@gmail.com> wrote:
>
>>
>> http://localhost:8983/solr/select?q=*:*&facet=true&facet.field=StudyID&face
>> t.mincount=1&facet.limit=-1&f.StudyID.facet.namedistinct=1<http://localhost:8983/solr/select?q=*:*&facet=true&facet.field=StudyID&facet.mincount=1&facet.limit=-1&f.StudyID.facet.namedistinct=1>
>>
>> Would do what you want I believe...
>>
>>
>>
>> On 3/11/11 8:51 AM, "Bill Bell" <bi...@gmail.com> wrote:
>>
>> >There is my patch to do that. SOLR-2242
>> >
>> >Bill Bell
>> >Sent from mobile
>> >
>> >
>> >On Mar 11, 2011, at 1:34 AM, rajini maski <ra...@gmail.com> wrote:
>> >
>> >> Query on facet field results...
>> >>
>> >>
>> >>       When I run a facet query on some field say : facet=on &
>> >> facet.field=StudyID I get list of distinct StudyID list with the count
>> >>that
>> >> tells that how many times did this study occur in the search query.
>> >>But I
>> >> also needed the count of these distinct StudyID list.. Any solr query
>> >>to get
>> >> count of it..
>> >>
>> >>
>> >>
>> >> Example:
>> >>
>> >>
>> >>
>> >>   <lst name="*facet_fields*">
>> >>
>> >>    <lst name=" StudyID ">
>> >>
>> >>  <int name="*105*">135164</int>
>> >>
>> >>  <int name="*179*">79820</int>
>> >>
>> >>  <int name="*107*">70815</int>
>> >>
>> >>  <int name="*120*">37076</int>
>> >>
>> >>  <int name="*134*">35276</int>
>> >>
>> >>  </lst>
>> >>
>> >> </lst>
>> >>
>> >>
>> >>
>> >> I wanted the count attribute that shall return the count of number of
>> >> different studyID occurred .. In above example  it could be  : Count =
>> 5
>> >> (105,179,107,120,134)
>> >>
>> >>
>> >>
>> >> <lst name="*facet_fields*">
>> >>
>> >> <lst name=" StudyID "  COUNT=5 >
>> >>
>> >>  <int name="*105*">135164</int>
>> >>
>> >>  <int name="*179*">79820</int>
>> >>
>> >>  <int name="*107*">70815</int>
>> >>
>> >>  <int name="*120*">37076</int>
>> >>
>> >>  <int name="*134*">35276</int>
>> >>
>> >>  </lst>
>> >>
>> >> </lst>
>>
>>
>>
>

Re: Query on facet field¹s count

Posted by rajini maski <ra...@gmail.com>.
Thanks Bill Bell . .This query works after applying the patch you refered
to, is it? Please can you let me know how do I need to update the current
war (apache solr 1.4.1 )file with this new patch? Thanks a lot.

Thanks,
Rajani

On Sat, Mar 12, 2011 at 8:56 AM, Bill Bell <bi...@gmail.com> wrote:

> http://localhost:8983/solr/select?q=*:*&facet=true&facet.field=StudyID&face
> t.mincount=1&facet.limit=-1&f.StudyID.facet.namedistinct=1
>
> Would do what you want I believe...
>
>
>
> On 3/11/11 8:51 AM, "Bill Bell" <bi...@gmail.com> wrote:
>
> >There is my patch to do that. SOLR-2242
> >
> >Bill Bell
> >Sent from mobile
> >
> >
> >On Mar 11, 2011, at 1:34 AM, rajini maski <ra...@gmail.com> wrote:
> >
> >> Query on facet field results...
> >>
> >>
> >>       When I run a facet query on some field say : facet=on &
> >> facet.field=StudyID I get list of distinct StudyID list with the count
> >>that
> >> tells that how many times did this study occur in the search query.
> >>But I
> >> also needed the count of these distinct StudyID list.. Any solr query
> >>to get
> >> count of it..
> >>
> >>
> >>
> >> Example:
> >>
> >>
> >>
> >>   <lst name="*facet_fields*">
> >>
> >>    <lst name=" StudyID ">
> >>
> >>  <int name="*105*">135164</int>
> >>
> >>  <int name="*179*">79820</int>
> >>
> >>  <int name="*107*">70815</int>
> >>
> >>  <int name="*120*">37076</int>
> >>
> >>  <int name="*134*">35276</int>
> >>
> >>  </lst>
> >>
> >> </lst>
> >>
> >>
> >>
> >> I wanted the count attribute that shall return the count of number of
> >> different studyID occurred .. In above example  it could be  : Count = 5
> >> (105,179,107,120,134)
> >>
> >>
> >>
> >> <lst name="*facet_fields*">
> >>
> >> <lst name=" StudyID "  COUNT=5 >
> >>
> >>  <int name="*105*">135164</int>
> >>
> >>  <int name="*179*">79820</int>
> >>
> >>  <int name="*107*">70815</int>
> >>
> >>  <int name="*120*">37076</int>
> >>
> >>  <int name="*134*">35276</int>
> >>
> >>  </lst>
> >>
> >> </lst>
>
>
>

Re: Query on facet field¹s count

Posted by Bill Bell <bi...@gmail.com>.
http://localhost:8983/solr/select?q=*:*&facet=true&facet.field=StudyID&face
t.mincount=1&facet.limit=-1&f.StudyID.facet.namedistinct=1

Would do what you want I believe...



On 3/11/11 8:51 AM, "Bill Bell" <bi...@gmail.com> wrote:

>There is my patch to do that. SOLR-2242
>
>Bill Bell
>Sent from mobile
>
>
>On Mar 11, 2011, at 1:34 AM, rajini maski <ra...@gmail.com> wrote:
>
>> Query on facet field results...
>> 
>> 
>>       When I run a facet query on some field say : facet=on &
>> facet.field=StudyID I get list of distinct StudyID list with the count
>>that
>> tells that how many times did this study occur in the search query.
>>But I
>> also needed the count of these distinct StudyID list.. Any solr query
>>to get
>> count of it..
>> 
>> 
>> 
>> Example:
>> 
>> 
>> 
>>   <lst name="*facet_fields*">
>> 
>>    <lst name=" StudyID ">
>> 
>>  <int name="*105*">135164</int>
>> 
>>  <int name="*179*">79820</int>
>> 
>>  <int name="*107*">70815</int>
>> 
>>  <int name="*120*">37076</int>
>> 
>>  <int name="*134*">35276</int>
>> 
>>  </lst>
>> 
>> </lst>
>> 
>> 
>> 
>> I wanted the count attribute that shall return the count of number of
>> different studyID occurred .. In above example  it could be  : Count = 5
>> (105,179,107,120,134)
>> 
>> 
>> 
>> <lst name="*facet_fields*">
>> 
>> <lst name=" StudyID "  COUNT=5 >
>> 
>>  <int name="*105*">135164</int>
>> 
>>  <int name="*179*">79820</int>
>> 
>>  <int name="*107*">70815</int>
>> 
>>  <int name="*120*">37076</int>
>> 
>>  <int name="*134*">35276</int>
>> 
>>  </lst>
>> 
>> </lst>



Re: Query on facet field’s count

Posted by Bill Bell <bi...@gmail.com>.
There is my patch to do that. SOLR-2242

Bill Bell
Sent from mobile


On Mar 11, 2011, at 1:34 AM, rajini maski <ra...@gmail.com> wrote:

> Query on facet field results...
> 
> 
>       When I run a facet query on some field say : facet=on &
> facet.field=StudyID I get list of distinct StudyID list with the count that
> tells that how many times did this study occur in the search query.  But I
> also needed the count of these distinct StudyID list.. Any solr query to get
> count of it..
> 
> 
> 
> Example:
> 
> 
> 
>   <lst name="*facet_fields*">
> 
>    <lst name=" StudyID ">
> 
>  <int name="*105*">135164</int>
> 
>  <int name="*179*">79820</int>
> 
>  <int name="*107*">70815</int>
> 
>  <int name="*120*">37076</int>
> 
>  <int name="*134*">35276</int>
> 
>  </lst>
> 
> </lst>
> 
> 
> 
> I wanted the count attribute that shall return the count of number of
> different studyID occurred .. In above example  it could be  : Count = 5
> (105,179,107,120,134)
> 
> 
> 
> <lst name="*facet_fields*">
> 
> <lst name=" StudyID "  COUNT=5 >
> 
>  <int name="*105*">135164</int>
> 
>  <int name="*179*">79820</int>
> 
>  <int name="*107*">70815</int>
> 
>  <int name="*120*">37076</int>
> 
>  <int name="*134*">35276</int>
> 
>  </lst>
> 
> </lst>

SOLR-2242-distinctFacet.patch

Posted by Isha Garg <is...@orkash.com>.
Hi,
       I  want to enquire the patch for 
namedistinct(SOLR-2242-distinctFacet.patch) available with solr4.0 trunk

On Monday 14 March 2011 08:05 PM, Jonathan Rochkind wrote:
> It's not easy if you have lots of facet values (in my case, can even 
> be up to a million), but there is no way built-in to Solr to get 
> this.  I have been told that some of the faceting strategies (there 
> are actually several in use in Solr based on your parameters and the 
> nature of your data) return the page of facet values without actually 
> counting all possible facet values, which is what would make this 
> difficult. But I have not looked at the code myself.
>
> Jonathan
>
> On 3/11/2011 7:33 AM, Erick Erickson wrote:
>> There's nothing that I know of that gives you this, but it's
>> simple to count the members of the list yourself...
>>
>> Best
>> Erick
>>
>> On Fri, Mar 11, 2011 at 3:34 AM, rajini maski<ra...@gmail.com>  
>> wrote:
>>> Query on facet field results...
>>>
>>>
>>>        When I run a facet query on some field say : facet=on&
>>> facet.field=StudyID I get list of distinct StudyID list with the 
>>> count that
>>> tells that how many times did this study occur in the search query.  
>>> But I
>>> also needed the count of these distinct StudyID list.. Any solr 
>>> query to get
>>> count of it..
>>>
>>>
>>>
>>> Example:
>>>
>>>
>>>
>>> <lst name="*facet_fields*">
>>>
>>> <lst name=" StudyID ">
>>>
>>> <int name="*105*">135164</int>
>>>
>>> <int name="*179*">79820</int>
>>>
>>> <int name="*107*">70815</int>
>>>
>>> <int name="*120*">37076</int>
>>>
>>> <int name="*134*">35276</int>
>>>
>>> </lst>
>>>
>>> </lst>
>>>
>>>
>>>
>>> I wanted the count attribute that shall return the count of number of
>>> different studyID occurred .. In above example  it could be  : Count 
>>> = 5
>>> (105,179,107,120,134)
>>>
>>>
>>>
>>> <lst name="*facet_fields*">
>>>
>>> <lst name=" StudyID "  COUNT=5>
>>>
>>> <int name="*105*">135164</int>
>>>
>>> <int name="*179*">79820</int>
>>>
>>> <int name="*107*">70815</int>
>>>
>>> <int name="*120*">37076</int>
>>>
>>> <int name="*134*">35276</int>
>>>
>>> </lst>
>>>
>>> </lst>
>>>


Re: Query on facet field’s count

Posted by Jonathan Rochkind <ro...@jhu.edu>.
It's not easy if you have lots of facet values (in my case, can even be 
up to a million), but there is no way built-in to Solr to get this.  I 
have been told that some of the faceting strategies (there are actually 
several in use in Solr based on your parameters and the nature of your 
data) return the page of facet values without actually counting all 
possible facet values, which is what would make this difficult. But I 
have not looked at the code myself.

Jonathan

On 3/11/2011 7:33 AM, Erick Erickson wrote:
> There's nothing that I know of that gives you this, but it's
> simple to count the members of the list yourself...
>
> Best
> Erick
>
> On Fri, Mar 11, 2011 at 3:34 AM, rajini maski<ra...@gmail.com>  wrote:
>> Query on facet field results...
>>
>>
>>        When I run a facet query on some field say : facet=on&
>> facet.field=StudyID I get list of distinct StudyID list with the count that
>> tells that how many times did this study occur in the search query.  But I
>> also needed the count of these distinct StudyID list.. Any solr query to get
>> count of it..
>>
>>
>>
>> Example:
>>
>>
>>
>>    <lst name="*facet_fields*">
>>
>>     <lst name=" StudyID ">
>>
>>   <int name="*105*">135164</int>
>>
>>   <int name="*179*">79820</int>
>>
>>   <int name="*107*">70815</int>
>>
>>   <int name="*120*">37076</int>
>>
>>   <int name="*134*">35276</int>
>>
>>   </lst>
>>
>> </lst>
>>
>>
>>
>> I wanted the count attribute that shall return the count of number of
>> different studyID occurred .. In above example  it could be  : Count = 5
>> (105,179,107,120,134)
>>
>>
>>
>> <lst name="*facet_fields*">
>>
>>   <lst name=" StudyID "  COUNT=5>
>>
>>   <int name="*105*">135164</int>
>>
>>   <int name="*179*">79820</int>
>>
>>   <int name="*107*">70815</int>
>>
>>   <int name="*120*">37076</int>
>>
>>   <int name="*134*">35276</int>
>>
>>   </lst>
>>
>> </lst>
>>

Re: Query on facet field’s count

Posted by Erick Erickson <er...@gmail.com>.
There's nothing that I know of that gives you this, but it's
simple to count the members of the list yourself...

Best
Erick

On Fri, Mar 11, 2011 at 3:34 AM, rajini maski <ra...@gmail.com> wrote:
> Query on facet field results...
>
>
>       When I run a facet query on some field say : facet=on &
> facet.field=StudyID I get list of distinct StudyID list with the count that
> tells that how many times did this study occur in the search query.  But I
> also needed the count of these distinct StudyID list.. Any solr query to get
> count of it..
>
>
>
> Example:
>
>
>
>   <lst name="*facet_fields*">
>
>    <lst name=" StudyID ">
>
>  <int name="*105*">135164</int>
>
>  <int name="*179*">79820</int>
>
>  <int name="*107*">70815</int>
>
>  <int name="*120*">37076</int>
>
>  <int name="*134*">35276</int>
>
>  </lst>
>
> </lst>
>
>
>
> I wanted the count attribute that shall return the count of number of
> different studyID occurred .. In above example  it could be  : Count = 5
> (105,179,107,120,134)
>
>
>
> <lst name="*facet_fields*">
>
>  <lst name=" StudyID "  COUNT=5 >
>
>  <int name="*105*">135164</int>
>
>  <int name="*179*">79820</int>
>
>  <int name="*107*">70815</int>
>
>  <int name="*120*">37076</int>
>
>  <int name="*134*">35276</int>
>
>  </lst>
>
> </lst>
>