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.

Reply via email to