As far as I can tell you should use multiValued for these fields: <field name="education" type="textgen" indexed="true" stored="true" multiValued="true"/> <field name="employer" type="textgen" indexed="true" stored="true" multiValued="true"/>
In order to get the data from the DB you should either create a sub entity with its own query or (the better performance option) use something like: SELECT cp.name, GROUP_CONCAT(ce.CandidateEducation SEPARATOR '|') AS multiple_educations, GROUP_CONCAT(e.Employer SEPARATOR '|') AS multiple_employers FROM CandidateProfile_Table cp LEFT JOIN CandidateEducation_Table ce ON cp.name = ce.name LEFT JOIN Employers_Table e ON cp.name = e.name GROUP BY cp.name This creates one line with the educations and employers concatenated into pipe (|) delimited fields. Then you'd have to break up the multiple fields using a RegexTransformer - use something like: <entity name="candidates" query="...see above..." transformer="RegexTransformer" > <field name="education" column="multiple_educations" splitBy="\|"/> <field name="employer" column="multiple_employers" splitBy="\|"/> </entity> The SQL probably doesn't fit your DB schema, but it's just to clarify the idea. You might have to pick a different field separator if pipe (|) might be in your data... Ephraim Ofir -----Original Message----- From: Sumit Arora [mailto:sumit1...@gmail.com] Sent: Thursday, August 26, 2010 1:36 PM To: solr-user@lucene.apache.org Subject: Candidate Profile Search which have multiple employers and Educations. I have to search candidate's profile , on which I have following Tables : Candidate Profile Record : CandidateProfile_Table CandidateEducation : CandidateEducation_Table // EducationIn Different Institutes or Colleges : Employers : Employers_Table //More than One Employers : If I denormalize this all three Table : CandidateProfile_Table - 1 Row for Sumit CandidateEducation_Table - 5 Rows for Sumit Employers_Table - 5 Rows for Sumit If these three tables will go to Index in Solr , It will create 25 Documents for one row. In this Case What Should be My Approach : DeNormalize all three tables and while querying from Solr use Field Collpase parameter by CandidateProfile Id, So It will return one record. Or I should use CandidateEducation_Table,CandidateEducation_Table as MultiValued in Solr ? If that is the case, then How I can apply Solr way to use MultiValue e.g; I need to use Following Configuration in Scehma.xml : <field name="education" type="textgen" indexed="true" stored="true"/> <field name="employer" type="textgen" indexed="true" stored="true"/> After this : I should pick all education values(from MySql Education Database Table) concerned to one profile and keep this in a one variable - EducationValuesForSolr and then EducationValuesForSolr's value need to assign to Schema.XML defined variable education ? Please let me know If I am using right approach and Comments? /Sumit