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
>
>

Reply via email to