Hi, Thanks for the reply. I did not get your idea. Am very new to Solr. Please give me some sample schema.
Regards, Praveen Walter Underwood wrote: > > Or you can add a "type" field and filter on that. I do that with > type:movie and type:people. --wunder > > > On 3/6/09 9:10 AM, "Cheng Zhang" <zhangyongji...@yahoo.com> wrote: > >> 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--tp22372731p22409734.html Sent from the Solr - User mailing list archive at Nabble.com.