Ex. 
\"docs\": [
{
\"id\": \"f37914\",
\"index_id\": \"some_index\",
\"field_1\": [
   {
      \"Some value\",
      \"boost\": 20.
   }
 ]
},
]
If \'
Boost what? the document? the specific field? you can do any of them. Anyway the way to do it is to user Function Queries: https://lucene.apache.org/solr/guide/6_6/function-queries.html#FunctionQueries-AvailableFunctions
For example if you want to boost the document (and assuming if the value doesn't match then the score is 0) then you can do something like that:
q:_val_:"if(query($q1), field(boost), 0)"&q1=field_1:"Some Value"
_val_ is just a hook into Solr function query, query returns true if q1 matches, field is a simple function that just return the value of the field it self and if allows us to join the two together.
So what I ended up doing is using lucence payloads and solr 6.6 new DelimitedPayloadTokenFilter feature.
First I created a terms field with the following configuration:
{
 "add-field-type": {
   "name": "terms",
   "stored": "true",
   "class": "solr.TextField",
   "positionIncrementGap": "100",
   "indexAnalyzer": {
     "tokenizer": {
       "class": "solr.KeywordTokenizerFactory"
     },
     "filters": [
       {
         "class": "solr.LowerCaseFilterFactory"
       },
       {
         "class": "solr.DelimitedPayloadTokenFilterFactory",
         "encoder": "float",
         "delimiter": "|"
       }
     ]
   },
   "queryAnalyzer": {
     "tokenizer": {
       "class": "solr.KeywordTokenizerFactory"
     },
     "filters": [
       {
         "class": "solr.LowerCaseFilterFactory"
       },
       {
         "class": "solr.SynonymGraphFilterFactory",
         "ignoreCase": "true",
         "expand": "false",
         "tokenizerFactory": "solr.KeywordTokenizerFactory",
         "synonyms": "synonyms.txt"
       }
     ]
   }
 },
 "add-field" : {
   "name":"terms",
   "type":"terms",
   "stored": "true",
   "multiValued": "true"
 }
}
I indexed my documents likes so:
[
  {
    "id" : "1",
    "terms" : [
      "some term|10.0",
      "another term|60.0"
    ]
  }
,
   {
    "id" : "2",
    "terms" : [
      "some term|11.0",
      "another term|21.0"
    ]
  }
]
I used solr's functional query support to query for a match on terms and grab the attached boost payload and apply it to the relevancy score:
/solr/payloads/select?indent=on&wt=json&q={!payload_score%20f=ai_terms_wtih_synm_3%20v=$payload_term%20func=max}&fl=id,score&payload_term=some+term