> this is the field type i m using for > techskill, > > <field > name="techskill" type="text_general" > indexed="true" > stored="true" /> > > <fieldType name="text_general" class="solr.TextField" > positionIncrementGap="100"> > <analyzer type="index"> > <tokenizer > class="solr.StandardTokenizerFactory"/> > <filter > class="solr.StopFilterFactory" ignoreCase="true" > words="stopwords.txt" enablePositionIncrements="true" /> > <!-- in this example, we will > only use synonyms at query time > <filter > class="solr.SynonymFilterFactory" > synonyms="index_synonyms.txt" ignoreCase="true" > expand="false"/> > --> > <filter > class="solr.LowerCaseFilterFactory"/> > </analyzer> > <analyzer type="query"> > <tokenizer > class="solr.StandardTokenizerFactory"/> > <filter > class="solr.StopFilterFactory" ignoreCase="true" > words="stopwords.txt" enablePositionIncrements="true" /> > <filter > class="solr.SynonymFilterFactory" synonyms="synonyms.txt" > ignoreCase="true" expand="true"/> > <filter > class="solr.LowerCaseFilterFactory"/> > </analyzer> > </fieldType> >
StandardTokenizer (ST) eats up # character. c# becomes c. You can verify this using Analysis page. You need an analysis chain that preserves #. There are different ways to do it. WhitespaceTokenizer with WordDelimeter can be an option. MappingCharFilter "#" => "SHARP" can be another too.