This is how Elasticsearch encodes binary values. The first value a vint
containing the number of values for the field. In Lucene, binary doc values
do not have a concept of "multi valued"; the data is opaque.

On Wed, Feb 28, 2018 at 8:25 AM Dominik Safaric <dominiksafa...@gmail.com>
wrote:

> No I'm not. The values are being stored through ElasticSearch into a
> binary doc value as a base 64 encoded string.
>
> 2018-02-28 16:00 GMT+01:00 David Smiley <david.w.smi...@gmail.com>:
>
>> This can't be; it must be a bug.  Perhaps you are saving away the
>> BytesRef by reference across multiple invocations?  That won't work; you
>> may have to clone/copy it.
>>
>> On Wed, Feb 28, 2018 at 9:53 AM Dominik Safaric <dominiksafa...@gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> I'm having an index where I'm storing a binary doc value being equal to
>>> a serialized 8 byte value. The values are consumed by a custom Query
>>> implementation, using LeafReader.getBinaryDocValues().
>>>
>>> However, what I found is the following. To each binary doc value
>>> returned by BinaryDocValues.get(docID), a sequence of two bytes of
>>> appended. In particular, at the first position it is always a byte equal to
>>> 1, whereas at the second position always a byte equal to 8. Hence, the
>>> length of the retrieved byte array is always equal to 10, and not 8 as
>>> stored.
>>>
>>> Could please someone explain why are these bytes being appended at the
>>> head of the array, where are these bytes appended and how to get the
>>> original value?
>>>
>>> Kind regards,
>>> Dominik
>>>
>> --
>> Lucene/Solr Search Committer, Consultant, Developer, Author, Speaker
>> LinkedIn: http://linkedin.com/in/davidwsmiley | Book:
>> http://www.solrenterprisesearchserver.com
>>
>
>

Reply via email to