We use this in production since several months.
So, try the patch and see if it is working for you as expected, if not,
improve it :-)

Regards,
Peter.

> Do we know when it will be added? Are there any alternatives to Solr
> that do this?
>
> Thanks,
> Moazzam
>
>
> On Wed, Jun 9, 2010 at 10:29 PM, Lance Norskog <goks...@gmail.com> wrote:
>   
>> This is what Field Collapsing does. It is a complex feature and is not
>> in the Solr trunk yet.
>>
>> On Tue, Jun 8, 2010 at 9:15 AM, Moazzam Khan <moazz...@gmail.com> wrote:
>>     
>>> How would I do a facet search if I did this and not get duplicates?
>>>
>>> Thanks,
>>> Moazzam
>>>
>>> On Mon, Jun 7, 2010 at 10:07 AM, Israel Ekpo <israele...@gmail.com> wrote:
>>>       
>>>> I think you need a 1:1 mapping between the consultant and the company, else
>>>> how are you going to run your queries for let's say consultants that worked
>>>> for Google or AOL between March 1999 and August 2004?
>>>>
>>>> If the mapping is 1:1, your life would be easier and you would not need to
>>>> do extra parsing of the results your retrieved.
>>>>
>>>> Unfortunately, it looks like your are doing to have a lot of records.
>>>>
>>>> With an RDBMS, it is easier to do joins but with Lucene and Solr you have 
>>>> to
>>>> denormalize all the relationships.
>>>>
>>>> Hence in this particular scenario, if you have 5 consultants that worked 
>>>> for
>>>> 4 distinct companies you will have to send 20 documents to Solr
>>>>
>>>> On Mon, Jun 7, 2010 at 10:15 AM, Moazzam Khan <moazz...@gmail.com> wrote:
>>>>
>>>>         
>>>>> Thanks for the replies guys.
>>>>>
>>>>>
>>>>> I am currently storing consultants like this ..
>>>>>
>>>>> <doc>
>>>>>  <id>123</id>
>>>>>  <FirstName>tony</FirstName>
>>>>>  <LastName>marjo</LastName>
>>>>>  <Company>Google</Company>
>>>>>  <Company>AOL</Company>
>>>>> <doc>
>>>>>
>>>>> I have a few multi valued fields so if I do it the way Israel
>>>>> suggested it, I will have tons of records. Do you think it will be
>>>>> better if I did this instead ?
>>>>>
>>>>>
>>>>> <doc>
>>>>>  <id>123</id>
>>>>>  <FirstName>tony</FirstName>
>>>>>  <LastName>marjo</LastName>
>>>>>  <Company>Google_StartDate_EndDate</Company>
>>>>>  <Company>AOL_StartDate_EndDate</Company>
>>>>> <doc>
>>>>>
>>>>> Or is what you guys said better?
>>>>>
>>>>> Thanks for all the help.
>>>>>
>>>>> Moazzam
>>>>>
>>>>>
>>>>> On Mon, Jun 7, 2010 at 1:10 AM, Lance Norskog <goks...@gmail.com> wrote:
>>>>>           
>>>>>> And for 'present', you would pick some time far in the future:
>>>>>> 2100-01-01T00:00:00Z
>>>>>>
>>>>>> On 6/5/10, Israel Ekpo <israele...@gmail.com> wrote:
>>>>>>             
>>>>>>> You need to make each document added to the index a 1 to 1 mapping for
>>>>>>>               
>>>>> each
>>>>>           
>>>>>>> company and consultant combo
>>>>>>>
>>>>>>> <schema>
>>>>>>>
>>>>>>> <fields>
>>>>>>>     <!-- Concatenation of company and consultant id -->
>>>>>>>     <field name="consultant_id_company_id" type="string" indexed="true"
>>>>>>> stored="true" required="true"/>
>>>>>>>     <field name="consultant_firstname" type="string" indexed="true"
>>>>>>> stored="true" multiValued="false"/>
>>>>>>>     <field name="consultant_lastname" type="string" indexed="true"
>>>>>>> stored="true" multiValued="false"/>
>>>>>>>
>>>>>>>     <!-- The name of the company the consultant worked for -->
>>>>>>>     <field name="company" type="text" indexed="true" stored="true"
>>>>>>> multiValued="false"/>
>>>>>>>     <field name="start_date" type="tdate" indexed="true" stored="true"
>>>>>>> multiValued="false"/>
>>>>>>>     <field name="end_date" type="tdate" indexed="true" stored="true"
>>>>>>> multiValued="false"/>
>>>>>>> </fields>
>>>>>>>
>>>>>>> <defaultSearchField>text</defaultSearchField>
>>>>>>>
>>>>>>> <copyField source="consultant_firstname" dest="text"/>
>>>>>>> <copyField source="consultant_lastname" dest="text"/>
>>>>>>> <copyField source="company" dest="text"/>
>>>>>>>
>>>>>>> </schema>
>>>>>>>
>>>>>>> <!--
>>>>>>>
>>>>>>> So for instance, you have 2 consultants
>>>>>>>
>>>>>>> Michael Davis and Tom Anderson who worked for AOL and Microsoft, Yahoo,
>>>>>>> Google and Facebook.
>>>>>>>
>>>>>>> Michael Davis = 1
>>>>>>> Tom Anderson = 2
>>>>>>>
>>>>>>> AOL = 1
>>>>>>> Microsoft = 2
>>>>>>> Yahoo = 3
>>>>>>> Google = 4
>>>>>>> Facebook = 5
>>>>>>>
>>>>>>> This is how you would add the documents to the index
>>>>>>>
>>>>>>> -->
>>>>>>>
>>>>>>> <doc>
>>>>>>>     <consultant_id_company_id>1_1</consultant_id_company_id>
>>>>>>>     <consultant_firstname>Michael</consultant_firstname>
>>>>>>>     <consultant_lastname>Davis</consultant_lastname>
>>>>>>>     <company>AOL</company>
>>>>>>>     <start_date>2006-02-13T15:26:37Z</start_date>
>>>>>>>     <end_date>2008-02-13T15:26:37Z</end_date>
>>>>>>> </doc>
>>>>>>>
>>>>>>> <doc>
>>>>>>>     <consultant_id_company_id>1_4</consultant_id_company_id>
>>>>>>>     <consultant_firstname>Michael</consultant_firstname>
>>>>>>>     <consultant_lastname>Davis</consultant_lastname>
>>>>>>>     <company>Google</company>
>>>>>>>     <start_date>2006-02-13T15:26:37Z</start_date>
>>>>>>>     <end_date>2009-02-13T15:26:37Z</end_date>
>>>>>>> </doc>
>>>>>>>
>>>>>>> <doc>
>>>>>>>     <consultant_id_company_id>2_3</consultant_id_company_id>
>>>>>>>     <consultant_firstname>Tom</consultant_firstname>
>>>>>>>     <consultant_lastname>Anderson</consultant_lastname>
>>>>>>>     <company>Yahoo</company>
>>>>>>>     <start_date>2001-01-13T15:26:37Z</start_date>
>>>>>>>     <end_date>2009-02-13T15:26:37Z</end_date>
>>>>>>> </doc>
>>>>>>>
>>>>>>> <doc>
>>>>>>>     <consultant_id_company_id>2_4</consultant_id_company_id>
>>>>>>>     <consultant_firstname>Tom</consultant_firstname>
>>>>>>>     <consultant_lastname>Anderson</consultant_lastname>
>>>>>>>     <company>Google</company>
>>>>>>>     <start_date>1999-02-13T15:26:37Z</start_date>
>>>>>>>     <end_date>2010-02-13T15:26:37Z</end_date>
>>>>>>> </doc>
>>>>>>>
>>>>>>>
>>>>>>> The you can search as
>>>>>>>
>>>>>>> q=company:X AND start_date:[X TO *] AND end_date:[* TO Z]
>>>>>>>
>>>>>>> On Fri, Jun 4, 2010 at 4:58 PM, Moazzam Khan <moazz...@gmail.com>
>>>>>>>               
>>>>> wrote:
>>>>>           
>>>>>>>               
>>>>>>>> Hi guys,
>>>>>>>>
>>>>>>>>
>>>>>>>> I have a list of consultants and the users (people who work for the
>>>>>>>> company) are supposed to be able to search for consultants based on
>>>>>>>> the time frame they worked for, for a company. For example, I should
>>>>>>>> be able to search for all consultants who worked for Bear Stearns in
>>>>>>>> the month of july. What is the best of accomplishing this?
>>>>>>>>
>>>>>>>> I was thinking of formatting the document like this
>>>>>>>>
>>>>>>>> <company>
>>>>>>>>   <name> Bear Stearns</name>
>>>>>>>>   <startDate>2000-01-01</startDate>
>>>>>>>>   <endDate>present</endDate>
>>>>>>>> </company>
>>>>>>>> <company>
>>>>>>>>   <name> AIG</name>
>>>>>>>>   <startDate>1999-01-01</startDate>
>>>>>>>>   <endDate>2000-01-01</endDate>
>>>>>>>> </company>
>>>>>>>>
>>>>>>>> Is this possible?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>>
>>>>>>>> Moazzam
>>>>>>>>
>>>>>>>>                 
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> "Good Enough" is not good enough.
>>>>>>> To give anything less than your best is to sacrifice the gift.
>>>>>>> Quality First. Measure Twice. Cut Once.
>>>>>>> http://www.israelekpo.com/
>>>>>>>
>>>>>>>               
>>>>>>
>>>>>> --
>>>>>> Lance Norskog
>>>>>> goks...@gmail.com
>>>>>>
>>>>>>             
>>>>>           
>>>>
>>>>
>>>> --
>>>> "Good Enough" is not good enough.
>>>> To give anything less than your best is to sacrifice the gift.
>>>> Quality First. Measure Twice. Cut Once.
>>>> http://www.israelekpo.com/
>>>>
>>>>         
>>>       
>>
>>
>> --
>> Lance Norskog
>> goks...@gmail.com
>>
>>     
>   

Reply via email to