報錯原文:
Caused by: java.lang.IllegalArgumentException: mapper [personName] of different type, current_type [text], merged_type [keyword]
Error creating bean with name 'ownerOpenRecordRepository':
如果是沒有接觸過elasticsearch的同學可能會不知道如何入手,那麼本文將從零基礎入手解決該問題!
首先第一步,以我們程序員的本能反應,就是字段類型變了,那類型變了怎麼辦?
如果在開發環境:可以通過web管理端kibana訪問es,直接刪除報錯的索引即可,網上說需要重建,其實不需要,因爲是非生產環境,刪就刪了;項目啓動實例化的時候會自動創建的。具體的操作步驟如下;
1、先找到報錯的具體索引(es中的索引可以理解爲數據庫),那如何去找呢?
答案當然是看日誌,es一般會在springboot啓動的時候去連接而發生報錯。在日
志中我們發現實例化Bean的時候會有×××Repository 之類的東西報錯,那就是它了,
2、通過地址
http://118.31.60.110/###-kibana/app/kibana#/dev_tools/console?_g=()
訪問ES的web端進行刪除操作,118.31.60.110爲es所在的服務器公網ip,如果有ngix,那麼該ip則是ngix的IP地址,###-kibana 也是在Nginx中所配置的項。連接成功後如下圖所示:
3、刪除索引
在console中發送restful風格的http請求,進行刪除操作,以下爲命令
DELETE ds##record/_search
ds##record爲索引名稱,如果是未找到方法,則直接寫ds##record即可,然後點擊路徑右側的類似播放的按鈕則可刪除成功
4、啓動無報錯