Tim Kornhammar created SOLR-3667:
------------------------------------
Summary: Solr::fieldNorm() gives weired values with
CustomSimilarity.
Key: SOLR-3667
URL: https://issues.apache.org/jira/browse/SOLR-3667
Project: Solr
Issue Type: Bug
Components: update
Affects Versions: 3.6
Environment: Ubuntu 12.04
Reporter: Tim Kornhammar
I have only seen floats being "smaller" int values like "13.33" becoming
"12.00", it is a very strange behavior. It behaves the same if the boost is on
the keyword field...
Example of update data:
{code:xml|borderStyle=solid}
<add>
<doc boost="13.33">
<field name="keyword">test one</field>
<field name="ranking">13.33</field>
</doc>
<doc boost="10.00">
<field name="keyword">test two</field>
<field name="ranking">10.00</field>
</doc>
</add>
{code}
Example of solr response, ranking is what I have tried to give both the
document boost and field boost individualy.
{code:xml|borderStyle=solid}
<result>
<doc>
<float name="score">12.0</float>
<str name="keyword">test one</str>
<float name="ranking">12.0</float>
</doc>
<doc>
<float name="score">10.0</float>
<str name="keyword">test two</str>
<float name="ranking">10.0</float>
</doc>
</result>
<lst name="debug">
<lst name="explain">
<str name="1">
12.0 = (MATCH) fieldWeight(keyword:test in 0), product of:
1.0 = tf(termFreq(keyword:test)=1)
1.0 = idf(docFreq=2, maxDocs=2)
12.0 = fieldNorm(field=keyword, doc=0)
</str>
<str name="2">
10.0 = (MATCH) fieldWeight(keyword:test in 0), product of:
1.0 = tf(termFreq(keyword:test)=1)
1.0 = idf(docFreq=2, maxDocs=2)
10.0 = fieldNorm(field=keyword, doc=0)
</str>
</lst>
</lst>
{code}
My CustomSimilarity class:
{code:title=CustomSimilarity.java|borderStyle=solid}
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.search.DefaultSimilarity;
public class CustomSimilarity extends DefaultSimilarity {
public CustomSimilarity() {
super();
}
public float tf(int freq) {
return (float) 1.0;
}
public float idf(int docFreq, int numDocs) {
return (float) 1.0;
}
public float computeNorm(String field, FieldInvertState state) {
return state.getBoost();
}
}
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]