One solr instance has only one doc type. So you have many types, the first option is to use multiple solr server instance.
The second option is to use multiple core. In this case, you have one solr sever instance but in the server instance you have more than one core. If you don't want to use multiple server instance or multiple core, the third option is to use the dynamic field. Here is my approach. In the schema, I define all dynamic fields I need. It covers all of my cases. Its format is *_DATATYPE_INDEXED_STORED_MULTIPLEVALUE. DATATYPE = Integer | Float | Double | String | Text | DaTe | Long. The short versons are "i f d s t dt" INDEXED: i -- yes, it's indexed; ni -- no, it's not indexed STORED: s -- yes, it's stored; ns -- no, it's not stored MULTIPLEVALUE: m -- yes, this field has multi-values; nm -- no, this field has single value. My list of dynamic fields. <dynamicField name="*_i_i_s_m" type="integer" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_i_i_s_nm" type="integer" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_i_i_ns_m" type="integer" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_i_i_ns_nm" type="integer" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_i_ni_s_m" type="integer" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_i_ni_s_nm" type="integer" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_i_ni_ns_m" type="integer" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_i_ni_ns_nm" type="integer" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_l_i_s_m" type="long" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_l_i_s_nm" type="long" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_l_i_ns_m" type="long" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_l_i_ns_nm" type="long" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_l_ni_s_m" type="long" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_l_ni_s_nm" type="long" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_l_ni_ns_m" type="long" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_l_ni_ns_nm" type="long" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_f_i_s_m" type="float" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_f_i_s_nm" type="float" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_f_i_ns_m" type="float" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_f_i_ns_nm" type="float" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_f_ni_s_m" type="float" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_f_ni_s_nm" type="float" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_f_ni_ns_m" type="float" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_f_ni_ns_nm" type="float" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_d_i_s_m" type="double" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_d_i_s_nm" type="double" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_d_i_ns_m" type="double" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_d_i_ns_nm" type="double" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_d_ni_s_m" type="double" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_d_ni_s_nm" type="double" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_d_ni_ns_m" type="double" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_d_ni_ns_nm" type="double" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_si_i_s_m" type="sint" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_si_i_s_nm" type="sint" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_si_i_ns_m" type="sint" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_si_i_ns_nm" type="sint" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_si_ni_s_m" type="sint" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_si_ni_s_nm" type="sint" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_si_ni_ns_m" type="sint" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_si_ni_ns_nm" type="sint" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_sl_i_s_m" type="slong" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_sl_i_s_nm" type="slong" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_sl_i_ns_m" type="slong" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_sl_i_ns_nm" type="slong" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_sl_ni_s_m" type="slong" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_sl_ni_s_nm" type="slong" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_sl_ni_ns_m" type="slong" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_sl_ni_ns_nm" type="slong" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_sf_i_s_m" type="sfloat" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_sf_i_s_nm" type="sfloat" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_sf_i_ns_m" type="sfloat" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_sf_i_ns_nm" type="sfloat" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_sf_ni_s_m" type="sfloat" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_sf_ni_s_nm" type="sfloat" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_sf_ni_ns_m" type="sfloat" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_sf_ni_ns_nm" type="sfloat" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_sd_i_s_m" type="sdouble" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_sd_i_s_nm" type="sdouble" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_sd_i_ns_m" type="sdouble" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_sd_i_ns_nm" type="sdouble" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_sd_ni_s_m" type="sdouble" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_sd_ni_s_nm" type="sdouble" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_sd_ni_ns_m" type="sdouble" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_sd_ni_ns_nm" type="sdouble" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_s_i_s_m" type="string" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_s_i_s_nm" type="string" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_s_i_ns_m" type="string" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_s_i_ns_nm" type="string" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_s_ni_s_m" type="string" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_s_ni_s_nm" type="string" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_s_ni_ns_m" type="string" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_s_ni_ns_nm" type="string" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_t_i_s_m" type="text" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_t_i_s_nm" type="text" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_t_i_ns_m" type="text" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_t_i_ns_nm" type="text" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_t_ni_s_m" type="text" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_t_ni_s_nm" type="text" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_t_ni_ns_m" type="text" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_t_ni_ns_nm" type="text" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_b_i_s_m" type="boolean" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_b_i_s_nm" type="boolean" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_b_i_ns_m" type="boolean" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_b_i_ns_nm" type="boolean" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_b_ni_s_m" type="boolean" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_b_ni_s_nm" type="boolean" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_b_ni_ns_m" type="boolean" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_b_ni_ns_nm" type="boolean" indexed="false" stored="false" multiValued="false"/> <dynamicField name="*_dt_i_s_m" type="date" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_dt_i_s_nm" type="date" indexed="true" stored="true" multiValued="false"/> <dynamicField name="*_dt_i_ns_m" type="date" indexed="true" stored="false" multiValued="true"/> <dynamicField name="*_dt_i_ns_nm" type="date" indexed="true" stored="false" multiValued="false"/> <dynamicField name="*_dt_ni_s_m" type="date" indexed="false" stored="true" multiValued="true"/> <dynamicField name="*_dt_ni_s_nm" type="date" indexed="false" stored="true" multiValued="false"/> <dynamicField name="*_dt_ni_ns_m" type="date" indexed="false" stored="false" multiValued="true"/> <dynamicField name="*_dt_ni_ns_nm" type="date" indexed="false" stored="false" multiValued="false"/> I also defined a java annotation SolrField as below, import java.lang.annotation.Target; import java.lang.annotation.Retention; import static java.lang.annotation.ElementType.*; import static java.lang.annotation.RetentionPolicy.*; @Retention(RUNTIME) @Target(FIELD) public @interface SolrField { boolean stored() default true; boolean indexed() default true; boolean sortable() default false; boolean text() default true; } Then, my class looks this: public class SolrObject { @SolrField(text=false) protected String id; Float score; @SolrField(sortable=true) Date timestamp = new Date(); } public class A extends SolrObject { @SolrField int ifield; @SolrField Date dateField @SolrField List<String> multiValues; ..... } public class B extends SolrObject { ...... } public class C extends A { @SolrField int i; ...... } And then, when I have an object, say c = new C(). I use reflection to get all fields which have SolrField annotation, and map all javaa types to solr dynamic field types A lot of code. Once all of this is done, my life now is very easy. My application now looks like, C c = new C(); // this method I developed use reflection to get SolrInputDocument from an Object instnce which has SolrField annotation. SolrInputDocument doc = getSolrInputDocument(c); CommonsHttpSolrServer.add(doc); The most trick part is to map java type to solr field types i defined. Hope it helps, Kevin ----- Original Message ---- From: Praveen_Kumar_J <praveen.kumar.jaya...@gmail.com> To: solr-user@lucene.apache.org Sent: Friday, March 6, 2009 5:43:41 AM Subject: How can I configure different types in Solr? Hi How do I configure different custom types or schemas in Solr? Assume I have some custom types type1 and type1 (some composite classes). Can I configure these 2 types in a single schema file? I need these 2 types to be online for creating and searching data. Please provide me some sample configuration. Regards, Praveen -- View this message in context: http://www.nabble.com/How-can-I-configure-different-types-in-Solr--tp22372731p22372731.html Sent from the Solr - User mailing list archive at Nabble.com.