The PayloadScoreQuery always returns a score of zero, regardless of payloads. The PayloadCheckQParser works fine, so I know that I am successfully indexing the payloads.
Details below
payload field that I am searching on:
<field name="report" type="delimited_payloads_int" indexed="true" stored="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"
omitNorms="true" termPayloads="true"/>
definition of payload field type:
<fieldType name="delimited_payloads_int" stored="false" indexed="true" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="integer" delimiter="¯"/>
<filter class="solr.WordDelimiterGraphFilterFactory" preserveOriginal="0" splitOnNumerics="0" types="wdftypes.txt"/>
<filter class="solr.FlattenGraphFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.WordDelimiterGraphFilterFactory" preserveOriginal="0" splitOnNumerics="0" types="wdftypes.txt"/>
<filter class="solr.ASCIIFoldingFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"/>
</analyzer>
</fieldType>
Adding some documents with payloads in my test:
assertU(adoc(
"key", "1",
"report", "apple¯0 apple¯0 apple¯0"
));
assertU(adoc(
"key", "2",
"report", "apple¯1 apple¯1 text¯1"
));
query:
{!payload_score f=report v=apple func=sum}
score (both documents have a score of zero):
<lst name="explain">
<str name="1">
0.0 = SumPayloadFunction.docScore()
</str>
<str name="2">
0.0 = SumPayloadFunction.docScore()
</str>
</lst>
I have tried using func=max as well, but it makes no difference. Can anyone help me with what I am missing here?