Siguiendo las documentaciones de Solr ( https://cwiki.apache.org/confluence/display/solr/Function+Queries y otras) debería poner idf(fieldname, 'term') como lo hago con termfreq(fieldname, 'term') en la lista de campos. Sin embargo, cada vez que intento esto obtengo una excepción como:
org.apache.solr.client.solrj.SolrServerException: No live SolrServers available to handle this requestMirando los registros pude encontrar:
null:java.lang.UnsupportedOperationException: requires a TFIDFSimilarity (such as ClassicSimilarity)Y no tengo ni idea de lo que son. Además, cuando uso debugQuery=on me muestra, junto con muchas otras cosas, el valor idf para el documento como:
4.406719 = idf, computed as log(1 + (docCount - docFreq + 0.5) / (docFreq + 0.5))¿Qué debo hacer para corregir estos errores o para obtener el valor deseado de tf e idf para un término?
Debe agregar la siguiente línea en su "esquema administrado" donde se comenta la etiqueta de similitud al final del esquema
<similarity class="solr.ClassicSimilarityFactory"/>Me encontré con el mismo problema y encontré esta extensión de Chrome:
https://chrome.google.com/webstore/detail/solr-query-debugger/gmpkeiamnmccifccnbfljffkcnacmmdl?hl=en
Es realmente útil para desglosar "explicar" y mostrará el valor de idf para usted.