Добавлено новое сопоставление полей, и вы хотите переиндексировать только это поле - PullRequest
1 голос
/ 13 июля 2020

Я добавил новое свойство поля к существующему полю, и теперь я хочу переиндексировать только недавно добавленное свойство поля.

Мои старые сопоставления индекса были

{
 "org_assignee_name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword"
            },
            "shingle_original" : {
              "type" : "text",
              "analyzer" : "shingle_original",
              "fielddata" : true
            },
            "standard" : {
              "type" : "text",
              "analyzer" : "standard",
              "fielddata" : true
            },
            "standard_shingle" : {
              "type" : "text",
              "analyzer" : "standard_shingle",
              "fielddata" : true
            }
          },
          "fielddata" : true
        },
}

Я добавил новый анализатор и добавил дополнительное свойство в поле:

PUT
{
  "properties": {
    "td_assignee_country_code": {
    "type":"text",
      "fields": {
        "standard_stopwords": {
          "type": "text",
          "analyzer":"standard_stopwords",
          "fielddata":true
        }
      }
    }
  }
}

И мое новое поле:

{
 "org_assignee_name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword"
            },
            "shingle_original" : {
              "type" : "text",
              "analyzer" : "shingle_original",
              "fielddata" : true
            },
            "standard" : {
              "type" : "text",
              "analyzer" : "standard",
              "fielddata" : true
            },
            "standard_shingle" : {
              "type" : "text",
              "analyzer" : "standard_shingle",
              "fielddata" : true
            }
          },
          "standard_stopwords" : {
              "type" : "text",
              "analyzer" : "standard_stopwords",
              "fielddata" : true
            },
          "fielddata" : true
        },
}

с добавлением только последнего свойства поля.

I не хочу снова индексировать все это, поскольку мой набор данных очень велик, а начальный индекс занял около 6 часов.

У меня уже загружены необработанные данные, и мне было интересно, как можно только переиндексировать недавно добавленное свойство поля? То есть, индексировать только org_assignee_name.standard_stopwords из набора необработанных данных и сохранять другие свойства поля в том же индексе или игнорировать его во время процесса переиндексации?

Спасибо!

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Вы можете использовать API обновления , как указано в ссылке:

API обновления также поддерживает передачу частичного документа, который объединяется с существующим документом

Более конкретно, следуйте примеру обновите часть документа , что именно то, что вы хотите

0 голосов
/ 13 июля 2020

U может заглянуть в Dynami c Mapping . Он решил мою проблему так же, как и вы. Вы также можете обновить свои настройки до Dynami c, чтобы в будущем, если будет добавлено новое поле, его можно будет легко обработать.

...