Nicolas Franck created SOLR-5313:
------------------------------------
Summary: json update extract boost from document value
Key: SOLR-5313
URL: https://issues.apache.org/jira/browse/SOLR-5313
Project: Solr
Issue Type: Improvement
Affects Versions: 3.6
Reporter: Nicolas Franck
Priority: Minor
The current JsonLoader in org.apache.solr.handler provides a way to add a boost
to a document as a whole. But if you want to add multiple documents,
each with its own boost, you have to create something like this:
{
"add": { "boost":2.0, "doc": {} },
"add": { "boost":2.0, "doc": {} }
..
}
No idea which JSON-writer can do this (I use the one from perl,
that does not support duplicate keys).
Therefore I tried to alter some of the code in JsonLoader::handleAdds.
The code is between "//test - start" and "//test - end":
cmd.solrDoc = parseDoc(ev);
//test - start
if(boost_field != null){
SolrInputField b_field = cmd.solrDoc.getField(boost_field);
if(b_field != null){
log.info("boost_field found in document with value
'"+b_field.getFirstValue()+"'");
float boost = Float.parseFloat((String)b_field.getFirstValue());
cmd.solrDoc.setDocumentBoost(boost);
cmd.solrDoc.removeField(boost_field);
}
}
//test - end
processor.processAdd(cmd);
In this code I try to extract the boost value for the document from the
document itself. The default field is configured as "_boost", and is deleted
from the document afterwards.
I tried to subclass JsonLoader, but sadly the class is package-protected ;-)
Could this be an interesting contribution?
--
This message was sent by Atlassian JIRA
(v6.1#6144)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]