This is one of those situations where I know a client did it, but didn’t see the code myself.
So I can’t help much. Perhaps a good question at this point, though, is “why do you want to add string payloads anyway”? This isn’t the client, but it might give you some pointers: https://github.com/dbmdz/solr-ocrpayload-plugin/blob/master/src/main/java/de/digitalcollections/solr/plugin/components/ocrhighlighting/OcrHighlighting.java Best, Erick > On Oct 21, 2019, at 6:37 AM, Vincenzo D'Amore <v.dam...@gmail.com> wrote: > > Hi Erick, > > It seems I've reached a dead-point, or at least it seems looking at the > code, it seems I can't easily add a custom decoder: > > Looking at PayloadUtils class there is getPayloadDecoder method invoked to > return the PayloadDecoder : > > public static PayloadDecoder getPayloadDecoder(FieldType fieldType) { > PayloadDecoder decoder = null; > > String encoder = getPayloadEncoder(fieldType); > > if ("integer".equals(encoder)) { > decoder = (BytesRef payload) -> payload == null ? 1 : > PayloadHelper.decodeInt(payload.bytes, payload.offset); > } > if ("float".equals(encoder)) { > decoder = (BytesRef payload) -> payload == null ? 1 : > PayloadHelper.decodeFloat(payload.bytes, payload.offset); > } > // encoder could be "identity" at this point, in the case of > DelimitedTokenFilterFactory encoder="identity" > > // TODO: support pluggable payload decoders? > > return decoder; > } > > Any advice to work around this situation? > > > On Mon, Oct 21, 2019 at 1:51 AM Erick Erickson <erickerick...@gmail.com> > wrote: > >> You’d need to write one. Payloads are generally intended to hold numerics >> you can then use in a function query to factor into the score… >> >> Best, >> Erick >> >>> On Oct 20, 2019, at 4:57 PM, Vincenzo D'Amore <v.dam...@gmail.com> >> wrote: >>> >>> Sorry, I just realized that I was wrong in how I'm using the payload >>> function. >>> Give that the payload function only handles a numeric (integer or float) >>> payload, could you suggest me an alternative function that handles >> strings? >>> If not, should I write one? >>> >>> On Sun, Oct 20, 2019 at 10:43 PM Vincenzo D'Amore <v.dam...@gmail.com> >>> wrote: >>> >>>> Hi all, >>>> >>>> I'm trying to understand what I did wrong with a payload query that >>>> returns >>>> >>>> error: { >>>> metadata: [ "error-class", "org.apache.solr.common.SolrException", >>>> "root-error-class", "org.apache.solr.common.SolrException" ], >>>> msg: "No payload decoder found for field: colorCode", >>>> code: 400 >>>> } >>>> >>>> I have reduced my problem in a little sample to show what happens to me. >>>> Basically I have a document with a couple of payload fields one >>>> delimited_payloads_string and one delimited_payloads_integer >>>> >>>> { >>>> field_dps: "key|data", >>>> field_dpi: "key|1", >>>> } >>>> >>>> When I execute this query solr returns as expected the payload for the >> key >>>> >>>> q=*:*&fl=payload(field_dpi,key) >>>> >>>> { >>>> payload(field_dpi,key): 1 >>>> } >>>> >>>> But for the strings there have to be something of different to do, >> because >>>> I'm unable receive the payload value back. Executing this query, as in >> the >>>> short introduction of this post, I receive an error. >>>> >>>> ?q=*:*&fl=payload(field_dps,key) >>>> >>>> error: { >>>> metadata: [ "error-class", "org.apache.solr.common.SolrException", >>>> "root-error-class", "org.apache.solr.common.SolrException" ], >>>> msg: "No payload decoder found for field: colorCode", >>>> code: 400 >>>> } >>>> >>>> Am I doing something wrong? How can I read strings payload data? >>>> >>>> Thanks in advance for your time, >>>> Vincenzo >>>> >>>> -- >>>> Vincenzo D'Amore >>>> >>>> >>> >>> -- >>> Vincenzo D'Amore >> >> > > -- > Vincenzo D'Amore