Have you checked out https://github.com/o19s/payload-component
On Mon, Oct 21, 2019 at 2:47 PM Erik Hatcher <erik.hatc...@gmail.com> wrote: > How about a single field, with terms like: > > store1_USD|125.0 store2_EUR|220.0 store3_GBP|225.0 > > Would that do the trick? > > And yeah, payload decoding is currently limited to float and int with the > built-in payload() function. We'd need a new way to pull out > textual/bytes payloads - like maybe a DocTransformer? > > Erik > > > > On Oct 21, 2019, at 9:59 AM, Vincenzo D'Amore <v.dam...@gmail.com> > wrote: > > > > Hi Erick, > > > > thanks for getting back to me. We started to use payloads because we have > > the classical per-store pricing problem. > > Thousands of stores across and different prices. > > Then we found the payloads very useful started to use it for many > reasons, > > like enabling/disabling the product for such store, save the stock > > availability, or save the other info like buy/sell price, discount rates, > > and so on. > > All those information are numbers, but stores can also be in different > > countries, I mean would be useful also have the currency and other > > attributes related to the store. > > > > Thinking about an alternative for payloads maybe I could use the dynamic > > fields, well, I know it is ugly. > > > > Consider this hypothetical case where I have two field payload : > > > > payloadPrice: [ > > "store1|125.0", > > "store2|220.0", > > "store3|225.0" > > ] > > > > payloadCurrency: [ > > "store1|USD", > > "store2|EUR", > > "store3|GBP" > > ] > > > > with dynamic fields I could have different fields for each document. > > > > currency_store1_s: "USD" > > currency_store2_s: "EUR" > > currency_store3_s: "GBP" > > > > But how many dynamic fields like this can I have? more than thousands? > > > > Again, I've just started to look at solr-ocrhighlighting github project > you > > suggested. > > Those seems have written their own payload object type where store ocr > > highlighting information. > > It seems interesting, I'll take a look immediately. > > > > Thanks again for your time. > > > > Best regards, > > Vincenzo > > > > > > On Mon, Oct 21, 2019 at 2:55 PM Erick Erickson <erickerick...@gmail.com> > > wrote: > > > >> 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 > >> > >> > > > > -- > > Vincenzo D'Amore > >