How do I get the tf and idf score from a Solr query?

Following Solr documentations (https://cwiki.apache.org/confluence/display/solr/Function+Queries and others) I should just put idf(fieldname, 'term') as I do with termfreq(fieldname, 'term') in the field list. However, whenever I try this I get an exception as:

org.apache.solr.client.solrj.SolrServerException: No live SolrServers available to handle this request

By looking at the logs I could find:

null:java.lang.UnsupportedOperationException: requires a TFIDFSimilarity (such as ClassicSimilarity)

And I have no idea what those are. Also when I use <strong>debugQuery=on</strong> it shows me, along with a lot of other things, the idf value for the document as:

4.406719 = idf, computed as log(1 + (docCount - docFreq + 0.5) / (docFreq + 0.5))

What should I do to fix these errors or to get desired tf and idf value for a term?

Answer1:

You need to add following line in your "managed-schema" where similarity tag is commented at the end of the schema

<similarity class="solr.ClassicSimilarityFactory"/>

Answer2:

I had run into the same issue and found this chrome extension -

https://chrome.google.com/webstore/detail/solr-query-debugger/gmpkeiamnmccifccnbfljffkcnacmmdl?hl=en

It is really helpful in breaking down "explain" and will display the value of idf for you.

人吐槽 人点赞

Recommend

Comment

用户名: 密码:
验证码: 匿名发表

你可以使用这些语言

查看评论:How do I get the tf and idf score from a Solr query?