On 10/31/2017 5:15 AM, Venkateswarlu Bommineni wrote: > Please suggest how to achieve below scenario. > > I have a field '*productSuggestion*' , below is the configuration. > > <field name="productSuggestion" type="product_auto" indexed="true" > stored="true" multiValued="false" /> > > <fieldType name="product_auto" class="solr.TextField"> > <analyzer type="index"> > <tokenizer class="solr.KeywordTokenizerFactory"/> > <filter class="solr.LowerCaseFilterFactory"/> > </analyzer> > <analyzer type="query"> > <tokenizer class="solr.KeywordTokenizerFactory"/> > <filter class="solr.LowerCaseFilterFactory"/> > </analyzer> > </fieldType> > > when i use above field in facets i am getting only indexed values (lower > case values ) , but i need original value.
One option is to change this field so it doesn't modify the text for the index. If you changed "solr.TextField" to "solr.StrField", completely removed the analyzer sections, enabled docValues, and reindexed, that would be accomplished. But if you must have the lowercase filter on this field, then you're going to have to do what Emir suggested -- use the "copyField" tag in your schema to copy the field contents (which will always be the original value, never the analyzed value) to another field that uses a type with the "solr.StrField" class and has no analysis chain, and facet on that field instead. I would recommend adding docValues to the new field, for facet performance. To keep the index size down, you should turn off any of the other features on the new field that you don't need -- indexed, stored, etc. For any of these schema changes, you must completely reindex. Thanks, Shawn