[elasticsearch] elasticsearch sort on “No mapping found “

elasticsearch sort no mapping found

在使用 elasticsearch 時,在同一組 cluster 中,常會有新舊建立的索引,甚至有些索引的 mapping 還有版本的更迭。
操作 multi index search時,若是索引建立的時間與mapping不一致時,常常會出現。

nested: SearchParseException[[index_name][2]: from[-1],size[-1]: Parse Failure [No mapping found for [name] in order to sort on]]; }]

在使用 sort ,若是沒有該 type 的 mapping ,預設的情況下會 return fail 。 這時候可以使用 ignore_unmapped 在 忽略 sort 該欄位時沒有存在 mapping的情況。

{
“sort" : [
{ “price" : {“ignore_unmapped" : true} },
],
“query" : {
“term" : { “user" : “pc" }
}
}

當然,不加上 ignore_unmapped 可以讓我們在使用中快速發現問題。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s