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: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to