Mailing List Archive

What's the difference between LatLonPoint and LatLonDocValuesField?
In my understanding from reading the oniline documentation, LatLonPoint is
used for BKD indexing, and LatLonDocValuesField is used for Sort argument's
input.

But does it means if a POI has a GeoPoint type "location" field, then i
must add the same location value to the 2 fields which makes me confusing:
because the api exposes internals to api users...

There seems 2 kind of Fields: one is the normal XxxField which is for
indexing and is row-stored, the other (XxxDocValuesField) is
column-stored, LatLonPoint may be taken as indexing field...

In my opinion, the 2 fields are both stored, so StoredField's naming is
somewhat misleading, if i add another StoredField with the same field name,
then later when using List<IndexableField> L = doc.getFields(); to retrieve
the document fields, i only get the last StoredField
value, LatLonDocValuesField is not got.
Re: What's the difference between LatLonPoint and LatLonDocValuesField? [ In reply to ]
Your understanding is correct. It is common to index geo points by creating
a LatLonPoint, a LatLonDocValuesField and a StoredField. Even though
LatLonDocValuesField is stored in the index, the fact it's column-stored
makes it a good choice for sorting or facets, but a poor choice to retrieve
information about a hit, which is why doc.getFields() doesn't return it.

On Fri, Jan 10, 2020 at 9:06 AM ??? <ctengctsh@gmail.com> wrote:

> In my understanding from reading the oniline documentation, LatLonPoint is
> used for BKD indexing, and LatLonDocValuesField is used for Sort argument's
> input.
>
> But does it means if a POI has a GeoPoint type "location" field, then i
> must add the same location value to the 2 fields which makes me confusing:
> because the api exposes internals to api users...
>
> There seems 2 kind of Fields: one is the normal XxxField which is for
> indexing and is row-stored, the other (XxxDocValuesField) is
> column-stored, LatLonPoint may be taken as indexing field...
>
> In my opinion, the 2 fields are both stored, so StoredField's naming is
> somewhat misleading, if i add another StoredField with the same field name,
> then later when using List<IndexableField> L = doc.getFields(); to retrieve
> the document fields, i only get the last StoredField
> value, LatLonDocValuesField is not got.
>


--
Adrien