2017-02-01 2 views
0

Я пытался обновить несколько автоматически предложить документы в Эластичность:Elasticsearch [2,3] - предложить запрос не возвращает обновленный документ

{"update":{"_index":"my_autosuggest_index", "_type":"my_autosuggest_type", "_id": "123"}} 
{"doc" : {my-updated-doc}, "doc_as_upsert" : true} 

обновление работает, когда непосредственно просить обновленный документ 123 с использованием

GET /my_autosuggest_index/my_autosuggest_type/123 

Я вижу обновленный документ.

Однако при запросе обновленного документа с помощью:

/my_autosuggest_index/_suggest 

{ 
    "hotels-suggest": { 
    "text": "London", 
    "completion": { 
     "field": "suggest", 
     "size": 10, 
     "context": { 
     "displayType": "Airports" 
     } 
    } 
    } 
} 

я doc 123 перед обновлением.

Пробовал очистить кеш - все еще получать не обновленный документ.

Я не нашел никакой документации или не думал о каких-либо других объяснениях этого странного поведения.

Спасибо.

ответ

0

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

Вы можете прочитать немного об этом here

Все документы в elasticsearch неизменны. Поскольку документы неизменяемы, при обновлении документа старый документ помечен для удаления и создается новый документ. Старый документ будет действительно удален, если сегменты в индексе elasticsearch сливаются. Здесь кроется проблема. Как-то в моем случае, когда мы использовали запрос предложения, мы получили оба результата.

Чтобы преодолеть это, вы можете принудительно объединить сегменты после обновления. Это медленно, но работает.

POST /index_name/_optimize?max_num_segments=1

Я думаю, что оптимизируют апи осуждается.

Если это не работает вы можете также использовать force merge

+0

Спасибо за ответ, я попытался сила слияния - дробленый узел из-за не достаточно места на диске .. – Daniel

+0

ой !! .. Вы были в состоянии восстановить данные? и можете ли вы проверить журналы и увидеть, что он разбился? были ли какие-либо другие причины, кроме достаточного дискового пространства. – pratikvasa

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