lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Zheng Lin Edwin Yeo <edwinye...@gmail.com>
Subject Re: Difference between currency fieldType and float fieldType
Date Thu, 08 Dec 2016 02:18:56 GMT
Thanks for all the replies.

Probably will have to go for long or currency fieldType. Int is still
32-bit, and there will be error in indexing if the amount is larger than
2,147,483,647. Since we are storing it as cents, it will hit the limit with
just $21.4 million.

Regards,
Edwin


On 7 December 2016 at 22:16, Esther-Melaine Quansah <
esther.quansah@lucidworks.com> wrote:

> Cool, that makes sense!
>
> Esther Quansah
> > On Dec 7, 2016, at 9:13 AM, Dorian Hoxha <dorian.hoxha@gmail.com> wrote:
> >
> > Yeah, you always *100 when you store,query,facet, and you always /100
> when
> > displaying.
> >
> > On Wed, Dec 7, 2016 at 3:07 PM, <esther.quansah@lucidworks.com> wrote:
> >
> >> I think Edwin might be concerned that in storing it as a long type,
> there
> >> will be no distinguishing between, in example, $1234.56 and $123456.
> >> But correct me if I'm wrong - the latter would be stored as 12345600.
> >>
> >> When sending in a search for all values less than $100,000 on a long
> >> field, will there be a need to send in that value in cents? (That is,
> >> q=*:*&fq=long_field[* TO 10000000] )
> >>
> >> Thanks,
> >>
> >> Esther Quansah
> >>
> >>> Le 7 déc. 2016 à 07:26, Dorian Hoxha <dorian.hoxha@gmail.com> a
écrit
> :
> >>>
> >>> Come on dude, just use the int/long.
> >>> Source: double is still a float.
> >>>
> >>> On Wed, Dec 7, 2016 at 1:17 PM, Zheng Lin Edwin Yeo <
> >> edwinyeozl@gmail.com>
> >>> wrote:
> >>>
> >>>> Thanks for the reply.
> >>>>
> >>>> How about using the double fieldType?
> >>>> I tried that it works, as it is 64-bit, as compared to 32-bit for
> float.
> >>>> But will it hit the same issue again if the amount exceeds 64-bit?
> >>>>
> >>>> Regards,
> >>>> Edwin
> >>>>
> >>>>
> >>>>> On 7 December 2016 at 15:28, Dorian Hoxha <dorian.hoxha@gmail.com>
> >> wrote:
> >>>>>
> >>>>> Yeah, you'll have to do the conversion yourself (or something
> internal,
> >>>>> like the currencyField).
> >>>>>
> >>>>> Think about it as datetimes. You store everything in utc (cents),
but
> >>>>> display to each user in it's own timezone (different currency, or
> just
> >>>> from
> >>>>> cents to full dollars).
> >>>>>
> >>>>> On Wed, Dec 7, 2016 at 8:23 AM, Zheng Lin Edwin Yeo <
> >>>> edwinyeozl@gmail.com>
> >>>>> wrote:
> >>>>>
> >>>>>> But if I index $1234.56 as "123456", won't it affect the search
or
> >>>> facet
> >>>>> if
> >>>>>> I do a query directly to Solr?
> >>>>>>
> >>>>>> Say if I search for index with amount that is lesser that $2000,
it
> >>>> will
> >>>>>> not match, unless when we do the search, we have to pass "200000"
to
> >>>>> Solr?
> >>>>>>
> >>>>>> Regards,
> >>>>>> Edwin
> >>>>>>
> >>>>>>
> >>>>>> On 7 December 2016 at 07:44, Chris Hostetter <
> >> hossman_lucene@fucit.org
> >>>>>
> >>>>>> wrote:
> >>>>>>
> >>>>>>> : Thanks for your reply.
> >>>>>>> :
> >>>>>>> : That means the best fieldType to use for money is currencyField,
> >>>> and
> >>>>>> not
> >>>>>>> : any other fieldType?
> >>>>>>>
> >>>>>>> The primary use case for CurrencyField is when you want
to do
> dynamic
> >>>>>>> currency fluctuations between multiple currency types at
query time
> >>>> --
> >>>>>> but
> >>>>>>> to do that you either need to use the FileExchangeRateProvider
and
> >>>> have
> >>>>>>> your owne backend system to update the exchange rates, or
you have
> to
> >>>>>> have
> >>>>>>> an openexchangerates.org account, or implement some other
provider
> >>>>> (with
> >>>>>>> custom solr java code)
> >>>>>>>
> >>>>>>>
> >>>>>>> If you only care about a single type of currency -- for
example, if
> >>>> all
> >>>>>>> you care about is is US Dollars -- then just use either
> >>>>>>> TrieIntField or TrieLongField and represent in the smallest
> possible
> >>>>>>> increment you need to measure -- for US Dollars this would
be
> cents.
> >>>>> ie:
> >>>>>>> $1234.56 would be put in your index as "123456"
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> -Hoss
> >>>>>>> http://www.lucidworks.com/
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message