I’m new to Elasticsearch, and confused about how does numeric type field stored in elasticsearch. As a non-analyzed field, it seems like es will create a doc_values for numeric field by default, but I have read the following content from here.
For example, text fields are stored in inverted indices, and numeric and geo fields are stored in BKD trees.[1]
After a period of learning about BKD tree, I suddenly realize that the context of previous content imply a fact: es stored different type field in corresponding appropriate structure. However, Of all the things I’ve learned so far, es will only store “the raw data” for _id
,_source
by lucene’s stored field, and create doc values for non-analyzed field to sort/aggregate etc. This seems contradictory to [1] above. The only explanation I can think of is that store=true
is set individually for each field mentioned in this document. But this is so weird.
Another question is about this passage: “numeric and geo fields are stored in BKD trees”. For numeric types, does this mean stored in one-dimensional BKD tree which can be regarded as a BTree?
Thanks for any help.