On Wed, Jul 22, 2009 at 11:35 AM, Grant Ingersoll<gsing...@apache.org> wrote: >> My initial thoughts are to index each description as a separate field and >> append the language identifier to the field name, for example, three >> fields >> with description_en, description_de, descrtiption_fr. Is this the best >> approach or is there a better way?
FWIW, this approach is essentially what we did at the Library of Congress to support multi-lingual fulltext search in the World Digital Library [1] webapp. It seems to have paid off pretty well, since we were able to configure analysis on a per-language basis. In case you are curious I've attached a copy of our schema.xml to give you an idea of what we did. //Ed [1] http://www.wdl.org/
<?xml version="1.0" encoding="ISO-8859-15"?> <schema name="example" version="1.1"> <!-- Note: there are lots more types available, see original schema.xml for the full picture. --> <types> <fieldType name="string" class="solr.StrField" omitNorms="true" sortMissingLast="true"/> <fieldType name="integer" class="solr.SortableIntField" omitNorms="true"/> <fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/> <!-- default --> <fieldType name="text" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType> <fieldType name="suggest_text_eng" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <fieldType name="suggest_text_por" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="brazilian-stopwords.txt"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <fieldType name="suggest_text_fra" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="french-stopwords.txt"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <fieldType name="suggest_text_spa" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="spanish-stopwords.txt"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <fieldType name="suggest_text_rus" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="russian-stopwords.txt"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <!-- Arabic (based on aramorph) --> <fieldType name="text_arabic" class="solr.TextField"> <analyzer type="index"> <tokenizer class="solr.ArabicTokenizerFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.ArabicTokenizerFactory"/> </analyzer> </fieldType> <!-- ArabicAnalyser = ArabicTokenizer => ArabicStemmer => ArabicGrammaticalFilter --> <fieldType name="text_arabic_analyzed" class="solr.TextField"> <analyzer type="index" class="solr.ArabicAnalyzer"/> <analyzer type="query" class="solr.ArabicAnalyzer"/> </fieldType> <!-- Brazilian (Portuguese) --> <fieldType name="text_brazilian" class="solr.TextField"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" words="brazilian-stopwords.txt"/> <filter class="solr.ISOLatin1AccentFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" words="brazilian-stopwords.txt"/> <filter class="solr.ISOLatin1AccentFilterFactory"/> </analyzer> </fieldType> <!-- BrazilianAnalyser = StandardTokenizer => StandardFilter => StopFilter => BrazilianStemFilter => LowerCaseFilter --> <fieldType name="text_brazilian_analyzed" class="solr.TextField"> <analyzer type="index" class="solr.BrazilianAnalyzer"/> <analyzer type="query" class="solr.BrazilianAnalyzer"/> </fieldType> <!-- Chinese --> <fieldType name="text_chinese" class="solr.TextField"> <analyzer type="index"> <tokenizer class="solr.ChineseTokenizerFactory"/> <filter class="solr.ChineseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.ChineseTokenizerFactory"/> <filter class="solr.ChineseFilterFactory"/> </analyzer> </fieldType> <!-- ChineseAnalyser = ChineseTokenizer => ChineseFilter --> <fieldType name="text_chinese_analyzed" class="solr.TextField"> <analyzer type="index" class="solr.ChineseAnalyzer"/> <analyzer type="query" class="solr.ChineseAnalyzer"/> </fieldType> <!-- Spanish --> <fieldtype name="text_spanish" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="spanish-stopwords.txt"/> <filter class="solr.ISOLatin1AccentFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="spanish-stopwords.txt"/> <filter class="solr.ISOLatin1AccentFilterFactory"/> </analyzer> </fieldtype> <fieldtype name="text_spanish_analyzed" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="spanish-stopwords.txt"/> <filter class="solr.SnowballPorterFilterFactory" language="Spanish"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="spanish-stopwords.txt"/> <filter class="solr.SnowballPorterFilterFactory" language="Spanish"/> </analyzer> </fieldtype> <!-- French --> <fieldType name="text_french" class="solr.TextField"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" words="french-stopwords.txt"/> <filter class="solr.ISOLatin1AccentFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" words="french-stopwords.txt"/> <filter class="solr.ISOLatin1AccentFilterFactory"/> </analyzer> </fieldType> <fieldType name="text_french_analyzed" class="solr.TextField"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <!-- run the lowercase filter before the sop words filter because the words in the file are in lower case --> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" words="french-stopwords.txt"/> <filter class="solr.FrenchStemFilterFactory"/> <!-- the french stemmer brings back uppercase letters in stems, run lowercase filter once more --> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.ISOLatin1AccentFilterFactory"/> <filter class="solr.ElisionFilterFactory" articles="french-articles.txt"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" words="french-stopwords.txt"/> <filter class="solr.FrenchStemFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.ISOLatin1AccentFilterFactory"/> <filter class="solr.ElisionFilterFactory" articles="french-articles.txt"/> </analyzer> </fieldType> <!-- Russian --> <fieldType name="text_russian" class="solr.TextField"> <analyzer type="index"> <tokenizer class="solr.RussianLetterTokenizerFactory"/> <filter class="solr.RussianLowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.RussianLetterTokenizerFactory"/> <filter class="solr.RussianLowerCaseFilterFactory"/> </analyzer> </fieldType> <fieldType name="text_russian_analyzed" class="solr.TextField"> <analyzer type="index" class="solr.RussianAnalyzer"/> <analyzer type="query" class="solr.RussianAnalyzer"/> </fieldType> </types> <fields> <!-- language agnostic fields --> <field name="id" type="string" indexed="true" stored="true" multiValued="false"/> <field name="start" type="integer" indexed="true" stored="true" multiValued="false"/> <field name="end" type="integer" indexed="true" stored="true" multiValued="false"/> <field name="time_period" type="string" indexed="true" stored="true" multiValued="true"/> <field name="object_type" type="string" indexed="true" stored="true" multiValued="false"/> <field name="institution_code" type="string" indexed="true" stored="true" multiValued="false"/> <field name="collection_code" type="integer" indexed="true" stored="true" multiValued="true"/> <field name="topic_code" type="string" indexed="true" stored="true" multiValued="true"/> <!-- geofeatures --> <field name="region_code" type="string" indexed="true" stored="true" multiValued="true"/> <field name="subregion_code" type="string" indexed="true" stored="true" multiValued="true"/> <field name="country_code" type="string" indexed="true" stored="true" multiValued="true"/> <field name="province_code" type="string" indexed="true" stored="true" multiValued="true"/> <!-- image info --> <field name="thumb_low" type="string" indexed="false" stored="true" multiValued="false"/> <field name="thumb_medium" type="string" indexed="false" stored="true" multiValued="false"/> <field name="thumb_high" type="string" indexed="false" stored="true" multiValued="false"/> <field name="service_low" type="string" indexed="false" stored="true" multiValued="false"/> <field name="service_medium" type="string" indexed="false" stored="true" multiValued="false"/> <field name="service_high" type="string" indexed="false" stored="true" multiValued="false"/> <field name="service_master" type="string" indexed="false" stored="true" multiValued="false"/> <!-- language specific fields --> <!-- Arabic --> <field name="additional_subject_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="country_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="creator_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="description_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="keyword_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="physical_description_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="place_publication_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="province_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="publisher_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="region_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="subregion_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="title_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="topic_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="facet_title_ara" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_creator_ara" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_keyword_ara" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_additional_subject_ara" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_region_ara" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_subregion_ara" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_country_ara" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_province_ara" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_topic_ara" type="string" indexed="true" stored="true" multiValued="true"/> <field name="suggest_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="text_ara" type="text_arabic_analyzed" indexed="true" stored="true" multiValued="true"/> <field name="collection_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="item_language_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <field name="city_ara" type="text_arabic" indexed="true" stored="true" multiValued="true"/> <!-- English --> <field name="additional_subject_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="country_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="creator_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="description_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="keyword_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="physical_description_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="place_publication_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="province_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="publisher_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="region_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="subregion_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="title_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="topic_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="facet_title_eng" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_creator_eng" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_keyword_eng" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_additional_subject_eng" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_region_eng" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_subregion_eng" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_country_eng" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_province_eng" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_topic_eng" type="string" indexed="true" stored="true" multiValued="true"/> <field name="suggest_eng" type="suggest_text_eng" indexed="true" stored="true" multiValued="false"/> <field name="text_eng" type="text" indexed="true" stored="true" multiValued="false"/> <field name="collection_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="item_language_eng" type="text" indexed="true" stored="true" multiValued="true"/> <field name="city_eng" type="text" indexed="true" stored="true" multiValued="true"/> <!-- French --> <field name="additional_subject_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="country_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="creator_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="description_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="keyword_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="physical_description_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="place_publication_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="province_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="publisher_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="region_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="subregion_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="title_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="topic_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="facet_title_fra" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_creator_fra" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_keyword_fra" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_additional_subject_fra" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_region_fra" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_subregion_fra" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_country_fra" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_province_fra" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_topic_fra" type="string" indexed="true" stored="true" multiValued="true"/> <field name="suggest_fra" type="suggest_text_fra" indexed="true" stored="true" multiValued="false"/> <field name="text_fra" type="text_french_analyzed" indexed="true" stored="true" multiValued="false"/> <field name="collection_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="item_language_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <field name="city_fra" type="text_french" indexed="true" stored="true" multiValued="true"/> <!-- Brazilian (Portuguese) --> <field name="additional_subject_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="country_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="creator_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="description_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="keyword_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="physical_description_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="place_publication_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="province_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="publisher_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="region_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="subregion_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="title_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="topic_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="facet_title_por" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_creator_por" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_keyword_por" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_additional_subject_por" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_region_por" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_subregion_por" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_country_por" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_province_por" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_topic_por" type="string" indexed="true" stored="true" multiValued="true"/> <field name="suggest_por" type="suggest_text_por" indexed="true" stored="true" multiValued="false"/> <field name="text_por" type="text_brazilian_analyzed" indexed="true" stored="true" multiValued="false"/> <field name="collection_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="item_language_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <field name="city_por" type="text_brazilian" indexed="true" stored="true" multiValued="true"/> <!-- Russian --> <field name="additional_subject_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="country_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="creator_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="description_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="keyword_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="physical_description_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="place_publication_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="province_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="publisher_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="region_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="subregion_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="title_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="topic_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="facet_title_rus" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_creator_rus" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_keyword_rus" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_additional_subject_rus" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_region_rus" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_subregion_rus" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_country_rus" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_province_rus" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_topic_rus" type="string" indexed="true" stored="true" multiValued="true"/> <field name="suggest_rus" type="suggest_text_rus" indexed="true" stored="true" multiValued="false"/> <field name="text_rus" type="text_russian_analyzed" indexed="true" stored="true" multiValued="false"/> <field name="collection_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="item_language_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <field name="city_rus" type="text_russian" indexed="true" stored="true" multiValued="true"/> <!-- Spanish --> <field name="additional_subject_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="country_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="creator_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="description_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="keyword_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="physical_description_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="place_publication_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="province_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="publisher_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="region_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="subregion_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="title_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="topic_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="facet_title_spa" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_creator_spa" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_keyword_spa" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_additional_subject_spa" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_region_spa" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_subregion_spa" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_country_spa" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_province_spa" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_topic_spa" type="string" indexed="true" stored="true" multiValued="true"/> <field name="suggest_spa" type="suggest_text_spa" indexed="true" stored="true" multiValued="false"/> <field name="text_spa" type="text_spanish_analyzed" indexed="true" stored="true" multiValued="false"/> <field name="collection_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="item_language_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <field name="city_spa" type="text_spanish" indexed="true" stored="true" multiValued="true"/> <!-- Chinese (zho) --> <field name="additional_subject_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="country_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="creator_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="description_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="keyword_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="physical_description_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="place_publication_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="province_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="publisher_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="region_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="subregion_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="title_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="topic_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="facet_title_zho" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_creator_zho" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_keyword_zho" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_additional_subject_zho" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_region_zho" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_subregion_zho" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_country_zho" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_province_zho" type="string" indexed="true" stored="true" multiValued="true"/> <field name="facet_topic_zho" type="string" indexed="true" stored="true" multiValued="true"/> <field name="suggest_zho" type="text_chinese" indexed="true" stored="true" multiValued="false"/> <field name="text_zho" type="text_chinese_analyzed" indexed="true" stored="true" multiValued="false"/> <field name="collection_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="item_language_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> <field name="city_zho" type="text_chinese" indexed="true" stored="true" multiValued="true"/> </fields> <copyField source="title_ara" dest="facet_title_ara"/> <copyField source="creator_ara" dest="facet_creator_ara"/> <copyField source="keyword_ara" dest="facet_keyword_ara"/> <copyField source="additional_subject_ara" dest="facet_additional_subject_ara"/> <copyField source="region_ara" dest="facet_region_ara"/> <copyField source="subregion_ara" dest="facet_subregion_ara"/> <copyField source="country_ara" dest="facet_country_ara"/> <copyField source="province_ara" dest="facet_province_ara"/> <copyField source="topic_ara" dest="facet_topic_ara"/> <copyField source="text_ara" dest="suggest_ara"/> <copyField source="title_eng" dest="facet_title_eng"/> <copyField source="creator_eng" dest="facet_creator_eng"/> <copyField source="keyword_eng" dest="facet_keyword_eng"/> <copyField source="additional_subject_eng" dest="facet_additional_subject_eng"/> <copyField source="region_eng" dest="facet_region_eng"/> <copyField source="subregion_eng" dest="facet_subregion_eng"/> <copyField source="country_eng" dest="facet_country_eng"/> <copyField source="province_eng" dest="facet_province_eng"/> <copyField source="topic_eng" dest="facet_topic_eng"/> <copyField source="text_eng" dest="suggest_eng"/> <copyField source="title_fra" dest="facet_title_fra"/> <copyField source="creator_fra" dest="facet_creator_fra"/> <copyField source="keyword_fra" dest="facet_keyword_fra"/> <copyField source="additional_subject_fra" dest="facet_additional_subject_fra"/> <copyField source="region_fra" dest="facet_region_fra"/> <copyField source="subregion_fra" dest="facet_subregion_fra"/> <copyField source="country_fra" dest="facet_country_fra"/> <copyField source="province_fra" dest="facet_province_fra"/> <copyField source="topic_fra" dest="facet_topic_fra"/> <copyField source="text_fra" dest="suggest_fra"/> <copyField source="title_por" dest="facet_title_por"/> <copyField source="creator_por" dest="facet_creator_por"/> <copyField source="keyword_por" dest="facet_keyword_por"/> <copyField source="additional_subject_por" dest="facet_additional_subject_por"/> <copyField source="region_por" dest="facet_region_por"/> <copyField source="subregion_por" dest="facet_subregion_por"/> <copyField source="country_por" dest="facet_country_por"/> <copyField source="province_por" dest="facet_province_por"/> <copyField source="topic_por" dest="facet_topic_por"/> <copyField source="text_por" dest="suggest_por"/> <copyField source="title_rus" dest="facet_title_rus"/> <copyField source="creator_rus" dest="facet_creator_rus"/> <copyField source="keyword_rus" dest="facet_keyword_rus"/> <copyField source="additional_subject_rus" dest="facet_additional_subject_rus"/> <copyField source="region_rus" dest="facet_region_rus"/> <copyField source="subregion_rus" dest="facet_subregion_rus"/> <copyField source="country_rus" dest="facet_country_rus"/> <copyField source="province_rus" dest="facet_province_rus"/> <copyField source="topic_rus" dest="facet_topic_rus"/> <copyField source="text_rus" dest="suggest_rus"/> <copyField source="title_spa" dest="facet_title_spa"/> <copyField source="creator_spa" dest="facet_creator_spa"/> <copyField source="keyword_spa" dest="facet_keyword_spa"/> <copyField source="additional_subject_spa" dest="facet_additional_subject_spa"/> <copyField source="region_spa" dest="facet_region_spa"/> <copyField source="subregion_spa" dest="facet_subregion_spa"/> <copyField source="country_spa" dest="facet_country_spa"/> <copyField source="province_spa" dest="facet_province_spa"/> <copyField source="topic_spa" dest="facet_topic_spa"/> <copyField source="text_spa" dest="suggest_spa"/> <copyField source="title_zho" dest="facet_title_zho"/> <copyField source="creator_zho" dest="facet_creator_zho"/> <copyField source="keyword_zho" dest="facet_keyword_zho"/> <copyField source="additional_subject_zho" dest="facet_additional_subject_zho"/> <copyField source="region_zho" dest="facet_region_zho"/> <copyField source="subregion_zho" dest="facet_subregion_zho"/> <copyField source="country_zho" dest="facet_country_zho"/> <copyField source="province_zho" dest="facet_province_zho"/> <copyField source="topic_zho" dest="facet_topic_zho"/> <copyField source="text_zho" dest="suggest_zho"/> <uniqueKey>id</uniqueKey> <defaultSearchField>text_eng</defaultSearchField> <solrQueryParser defaultOperator="AND"/> </schema>