Thanks for all the help guys. You guys are awesome! Peter: I wish I had the skill to be able to improve it. (and I will try the patch :))
- Moazzam On Thu, Jun 10, 2010 at 3:03 PM, Peter Karich <peat...@yahoo.de> wrote: > 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 >>> >>> >> > >