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 小鱼儿 <ctengc...@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

Reply via email to