2015-06-11 2 views
0

У меня есть документ в ElasticSearch, который содержит словарь. Первоначально он пуст, но позже я обновляю его с помощью API _update и вставляю несколько пар ключ/значение. Теперь мне нужно снова очистить словарь. Я попытался использовать API _update и передал ему пустой словарь ({}), но старые пары ключ/значение все еще существуют. Я не могу использовать скрипты ctx. Одно из решений - передать null, а затем повторно вставить обновленный словарь, но это вызовет два вызова ES. API-интерфейс _update утверждает, что он объединяет словарь, но не имеет возможности его выпустить.Обновление словаря в эластичном поиске

ответ

0

Таким образом, чтобы резюмировать, вы индексировали документ в Elasticsearch как этот

curl -XPOST localhost:9200/your_index/your_type/123 -d '{"field1":"value1"}' 

Затем вы вставили пару дополнительных полей с использованием _update конечной точки:

curl -XPOST localhost:9200/your_index/your_type/123/_update -d '{ 
    "doc": {"field2": "value2"} 
}' 

Теперь ваш документ 123 внешность как это, и вы хотите очистить его, чтобы содержать новые данные.

{ 
    "field1": "value1", 
    "field2": "value2" 
} 

Вы можете просто повторно проиндексировать новый документ с новыми полями, но тот же идентификатор, как мы делали это с первой командой выше:

curl -XPOST localhost:9200/your_index/your_type/123 -d '{"field3":"value3"}' 

И документ 123 теперь выглядит

{ 
    "field3": "value3" 
} 

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

curl -XDELETE localhost:9200/your_index/your_type/123 

Поскольку документ будет отсутствовать, ваше приложение может считать, что оно пустое (семантически).

+0

Извините за поздний комментарий, мне нужно было удалить словарь внутри документа. { "field1": "value1", "dictionary": {"field2", "value2"} }. Мне нужно установить «словарь» на пустой. – Sky

+0

Вы можете установить поле 'dictionary' в' null' с 'curl -XPOST localhost: 9200/your_index/your_type/123/_update -d '{ " doc ": {" dictionary ": null} }'' – Val

Смежные вопросы