Elasticsearch 6.2, скопировать неиндексированное поле в новый индекс - PullRequest
0 голосов
/ 11 марта 2020

Я унаследовал индексasticsearch 6.2.3 с полем без поиска, и мне нужно получить уникальный список значений в этом поле, используя Kibana:

{
  "myindex": {
    "mappings": {
      "mytypename": {
        "field_name": {
          "full_name": "field_name",
          "mapping": {
            "field_name": {
              "type": "text",
              "index": false
            }
          }
        }
      }
    }
  }
}

Если я пытаюсь выполнить поиск, я получаю "Невозможно выполнить поиск по полю [field_name], так как оно не проиндексировано." Я попытался изменить отображение, но похоже, что оно работает только с более поздними версиями: «Ошибка проверки: 1: тип отображения отсутствует;»:

PUT /myindex/_mapping
{
  "properties": {
    "field_name": {
      "type": "keyword",
      "index": true
    }
  }
}

Я попытался создать новый индекс только с этим полем, но индексируется как ключевое слово, но я получаю "окончательное сопоставление будет иметь более 1 типа", когда я пытаюсь переиндексировать:

PUT /newindex
{
    "mappings" : {
      "type_name": {
        "properties" : {
            "field_name" : { "type" : "keyword", "index": true }
     }
      }
    }
}

POST _reindex
{
  "source": {
    "index": "myindex",
    "_source": ["field_name"]
  },
  "dest": {
    "index": "newindex"
  }
}

Соответствующая информация: я парень SQL, так что это за рулем я сумасшедший. Мой синтаксис может быть полностью отключен, потому что он сильно изменился между версиями. Любое понимание того, как я могу получить уникальный список field_name в elasti c 6.2?

...