Как использовать массовый API для вставки нулевого значения в формате даты вasticsearch - PullRequest
1 голос
/ 23 сентября 2019

вasticsearch, у меня есть настройки поля даты в моем отображении, например:

"create_time" : {
 "type" : "date",
 "null_value" : "NULL"
 },

Я использую панды для обработки моих данных, например:

    create_date
0       NULL
1       2019-09-23 14:32:32.217377

и вPython я использую массовый API, метод:

def gendata(data, index):
    INDEX = index
    TYPE = "doc"
    for record in data:
        yield {
            "_index": INDEX,
            "_type": TYPE,
            "_source": record,
        }
bulk(client,gendata(data.to_dict(orient="records"),index="test"))

, но я получаю BulkIndexError :( '1 документ (ов) не удалось проиндексировать.', [{'index': {'_index': «ics_asset», «_type»: «doc», «_id»: «85vaXG0Be27aFy3eNkCZ», «status»: 400, «error»: {«type»:другой тип, current_type [date], merged_type [text] '},' data ': {' create_date ':' null '}}}]).

как я могу использовать массовое право панд "значение "null" с форматом даты

1 Ответ

1 голос
/ 23 сентября 2019

Документация о null_value четко гласит:

null_value должен иметь тот же тип данных, что и поле.Например, поле long не может иметь строку null_value.

Это означает, что вы не можете присвоить строку NULL как null_value для поля date.

Это null_value полезно только в том случае, если вы хотите явно запрашивать документы без значения для определенного поля.Может быть, вы можете назначить дату наподобие 1900-01-01, чтобы вы могли запросить их с этой конкретной датой.

В противном случае вы можете отказаться от опции null_value, и вы сможете прекрасно индексировать документы с обычнымиnull значение.Единственным недостатком является то, что вы не сможете получить документы к null дате создания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...