OpenSearch/docs/reference
Adrien Grand d84c643f58 Use the new points API to index numeric fields. #17746
This makes all numeric fields including `date`, `ip` and `token_count` use
points instead of the inverted index as a lookup structure. This is expected
to perform worse for exact queries, but faster for range queries. It also
requires less storage.

Notes about how the change works:
 - Numeric mappers have been split into a legacy version that is essentially
   the current mapper, and a new version that uses points, eg.
   LegacyDateFieldMapper and DateFieldMapper.
 - Since new and old fields have the same names, the decision about which one
   to use is made based on the index creation version.
 - If you try to force using a legacy field on a new index or a field that uses
   points on an old index, you will get an exception.
 - IP addresses now support IPv6 via Lucene's InetAddressPoint and store them
   in SORTED_SET doc values using the same encoding (fixed length of 16 bytes
   and sortable).
 - The internal MappedFieldType that is stored by the new mappers does not have
   any of the points-related properties set. Instead, it keeps setting the index
   options when parsing the `index` property of mappings and does
   `if (fieldType.indexOptions() != IndexOptions.NONE) { // add point field }`
   when parsing documents.

Known issues that won't fix:
 - You can't use numeric fields in significant terms aggregations anymore since
   this requires document frequencies, which points do not record.
 - Term queries on numeric fields will now return constant scores instead of
   giving better scores to the rare values.

Known issues that we could work around (in follow-up PRs, this one is too large
already):
 - Range queries on `ip` addresses only work if both the lower and upper bounds
   are inclusive (exclusive bounds are not exposed in Lucene). We could either
   decide to implement it, or drop range support entirely and tell users to
   query subnets using the CIDR notation instead.
 - Since IP addresses now use a different representation for doc values,
   aggregations will fail when running a terms aggregation on an ip field on a
   list of indices that contains both pre-5.0 and 5.0 indices.
 - The ip range aggregation does not work on the new ip field. We need to either
   implement range aggs for SORTED_SET doc values or drop support for ip ranges
   and tell users to use filters instead. #17700

Closes #16751
Closes #17007
Closes #11513
2016-04-14 17:56:23 +02:00
..
aggregations terms-aggregation.asciidoc tiny edit 2016-04-13 16:51:47 -06:00
analysis Docs: Fixed link to phonetic plugin 2016-04-13 10:17:46 +02:00
cat Add some clarification regarding docs.count 2016-04-07 11:15:32 +02:00
cluster Add _cat/tasks 2016-04-07 09:28:21 -06:00
docs Docs: Removed references to deprecated functionality 2016-04-07 13:33:35 +02:00
images [DOCS] Update instructions for running on Windows 2016-04-07 17:59:58 -04:00
index-modules updateing filtering.asciidoc to also use 'node.attr' namespace 2016-03-30 14:11:59 +02:00
indices Add a more descriptive example to Index Template 2016-04-06 12:18:10 +02:00
ingest docs: remove mention of file based grok pattern 2016-04-13 22:51:12 +02:00
mapping Use the new points API to index numeric fields. #17746 2016-04-14 17:56:23 +02:00
migration Use the new points API to index numeric fields. #17746 2016-04-14 17:56:23 +02:00
modules Limit request size on transport level 2016-04-13 09:54:59 +02:00
query-dsl Adds ignore_unmapped option to geo queries 2016-04-14 15:29:07 +01:00
release-notes Updated 5.0.0-alpha1 release notes 2016-04-05 16:08:22 +02:00
search Docs: Removed references to deprecated functionality 2016-04-07 13:33:35 +02:00
setup More asciidoc errors 2016-04-13 10:14:09 +02:00
testing Docs: Fix nodeSettings example for integ tests to use correct Settings.Builder reference 2015-12-17 23:17:17 -08:00
aggregations.asciidoc Merge pull request #16741 from blachniet/patch-1 2016-03-02 10:57:56 +01:00
analysis.asciidoc Remove ICU Plugin in reference guide 2015-12-29 11:23:28 +01:00
api-conventions.asciidoc Update api-conventions.asciidoc 2016-03-04 10:10:29 +01:00
cat.asciidoc Fixed asciidoc issues 2016-02-05 14:47:44 +01:00
cluster.asciidoc Update task management docs to reflect the latest changes in the interface 2016-03-29 12:26:37 -04:00
docs.asciidoc Docs: Display reindex/update by query API and fix build doc issue 2016-03-18 10:44:16 +01:00
getting-started.asciidoc Bootstrap does not set system properties 2016-03-13 20:09:15 -04:00
glossary.asciidoc Improve glossary to not refer to types as "like a table" (#17704) 2016-04-13 14:29:47 +02:00
index-modules.asciidoc Redocument the `index.merge.scheduler.max_thread_count` setting 2016-03-05 16:28:43 +01:00
index.asciidoc Docs: Complete rewrite of setup, installation, and configuration docs 2016-04-03 16:09:48 +02:00
indices.asciidoc Remove warmers and the warmer API. 2016-01-07 09:57:07 +01:00
ingest.asciidoc Docs: Added the ingest node to the modules/nodes page 2016-03-15 19:03:18 +01:00
mapping.asciidoc Document 5.0 mapping changes. 2016-03-22 16:22:58 +01:00
modules.asciidoc Docs: Adding Painless to the Scripting documentation. 2016-03-23 13:52:40 -07:00
query-dsl.asciidoc Fixed broken xrefs to query-dsl-not-query, which has been removed. 2015-10-20 13:01:37 -07:00
redirects.asciidoc Docs: Complete rewrite of setup, installation, and configuration docs 2016-04-03 16:09:48 +02:00
release-notes.asciidoc Docs: Added 5.0.0-alpha1 release notes 2016-03-18 14:51:49 +01:00
search.asciidoc Add documentation for global search timeout 2016-01-07 10:42:18 -05:00
setup.asciidoc Docs: Complete rewrite of setup, installation, and configuration docs 2016-04-03 16:09:48 +02:00
testing.asciidoc [DOCS] Test framework documentation 2013-12-02 18:01:45 +01:00