Hi, I have a field and a wighted synonym map. I have indexed the synonyms with the weight as payload. my code snippet from my filter
*public Token next(final Token reusableToken) throws IOException * * . * * . * * .* * Payload boostPayload;* * * * for (Synonym synonym : syns) {* * * * Token newTok = new Token(nToken.startOffset(), nToken.endOffset(), "SYNONYM");* * newTok.setTermBuffer(synonym.getToken().toCharArray(), 0, synonym.getToken().length());* * // set the position increment to zero* * // this tells lucene the synonym is* * // in the exact same location as the originating word* * newTok.setPositionIncrement(0);* * boostPayload = new Payload(PayloadHelper.encodeFloat(synonym.getWieght()));* * newTok.setPayload(boostPayload);* * * I have put it in the index time analyzer : this is my field definition: * <fieldType name="PersonName" class="solr.TextField" positionIncrementGap="100" > <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="com.digitaltrowel.solr.DTSynonymFactory" FreskoFunction="names_with_scoresPipe23Columns.txt" ignoreCase="true" expand="false"/> <!--<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>--> <!--<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>--> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <!--<filter class="com.digitaltrowel.solr.DTSynonymFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>--> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> <!--<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>--> <!--<filter class="solr.RemoveDuplicatesTokenFilterFactory"/ >--> </analyzer> </fieldType> my similarity class is public class BoostingSymilarity extends DefaultSimilarity { public BoostingSymilarity(){ super(); } @Override public float scorePayload(String field, byte [] payload, int offset, int length) { double weight = PayloadHelper.decodeFloat(payload, 0); return (float)weight; } @Override public float coord(int overlap, int maxoverlap) { return 1.0f; } @Override public float idf(int docFreq, int numDocs) { return 1.0f; } @Override public float lengthNorm(String fieldName, int numTerms) { return 1.0f; } @Override public float tf(float freq) { return 1.0f; } } My problem is that scorePayload method does not get called at search time like the other methods in my similarity class. I tested and verified it with break points. What am I doing wrong? I used solr 1.3 and thinking of the payload boos support in solr 1.4. *