Update 'exact' field mapping to avoid duplicate data

As an example, the mapping for the exact field 'status' in 'changes'
index is updated as below to avoid duplication.

Without change:
  "status": {
    "type": "keyword",
    "fields": {
      "key": {
        "type": "keyword"
      }
    }
  }

With change:
  "status": {
    "type": "keyword"
  }

On a Gerrit instance with ~4M changes, this change brings down the
size of changes index from ~25G to ~20G.

Release-Notes: Size of indices is reduced. Re-index is required.
Change-Id: I680eb01c7e8c96548ddb4b321f383916f165af28
2 files changed
tree: 5af71e3d5f8980f496dbf687561af20bb0d275ee
  1. src/
  2. BUILD
  3. external_plugin_deps.bzl
  4. Jenkinsfile
  5. LICENSE
  6. README.md
README.md

Index backend for Gerrit, based on ElasticSearch

Indexing backend libModule for Gerrit Code Review based on ElasticSearch.

This module was originally part of Gerrit core and then extracted into a separate component from v3.5.0-rc3 as part of Change-Id: Ib7b5167ce.

Note that, ElasticSearch source code is no longer Apache 2.0-licensed for versions 7.11 and newer. See ElasticSearch 2021 license change for more information.

How to build

This libModule is built like a Gerrit in-tree plugin, using Bazelisk. See the build instructions for more details.

Setup

See the setup instructions for how to install the index-elasticsearch module.

For further information and supported options, refer to the config documentation.

Integration test

This libModule runs tests like a Gerrit in-tree plugin, using Bazelisk. See the test instructions for more details.