記一次ES查詢資料突然變為空的問題

2022-06-25 11:06:12 字數 1374 閱讀 9069

使用elasticsearch儲存訂單的主要資訊,document內的field,基本上是long或keyword,建立索引的order.json檔案如下:

,

"status": ,

"createtime": ,

"uid": ,

"payment": ,

"commentstatus": ,

"refundstatus":

} }

}

某天發現有個查詢功能(單獨使用payment欄位查詢)沒有資料出來,最近未修改此部分**。對比研發環境,研發環境是正常的,同樣的**在測試環境下無資料返回。

querybuilders.termquery("payment", req.getfilter().getorder().getpayment())
在kibana上用命令診斷查詢資料,同樣沒有結果返回,查詢命令如下:

get /order/doc/_search

} ]

}}}

響應返回(只展示payment欄位):

}}

}}

}}}

text與keyword的區別

keyword對儲存的內容不分詞,也不改變大小寫,原樣儲存,預設可索引。

text對內容進行分詞,並且全部小寫儲存,同時會增加乙個text.keyword欄位,為keyword型別,超過256字元後不索引。

由於payment欄位變成text了,原有的程式使用term查詢,用的"alipay",而text儲存的是"alipay",所以查不到資料了。

嘗試排錯方法

get /order/doc/_search

} ]

}}}

get /order/doc/_search}]

}}}

查詢有資料輸出,並且符合預期,嘗試方法有效。

明明order.json的對payment欄位定義的型別是keyword,怎麼變成text了?

1.刪除索引

delete /order

2.按照order.json重建索引

put /order

, "status": ,

"createtime": ,

"uid": ,

"payment": ,

"commentstatus": ,

"refundstatus": }}

}}

3.觸發程式灌資料(也可以用bulk)

記一次生產ORACLE資料庫突然查詢變慢

資料庫 oracle 有乙個流水表,表資料量千萬級,乙個管理臺常用條件分頁查詢突然變慢,有日期條件且有索引。部署伺服器是多台,資料庫查詢操作使用hibernate框架。逐台伺服器sql日誌跟蹤排查,根據hibernate發出sql語句,在oracle資料庫檢查對應的執行計畫,使用檢視 v sql 獲...

記一次sql查詢

效果圖 要查詢出如上圖的效果 知識點.1.多表巢狀查詢.2.輸出查詢結果,group concat函式 3.關聯查詢 select t1.學校,case when t1.年級 2017 then 1年級 when t1.年級 2016 then 2年級 when t1.年級 2015 then 3年...

記一次複雜查詢

專案中有乙個需求,查出使用者取出,充值次數,金額,使用者名稱,金幣的總量和每局遊戲的盈虧等做乙個統計,而他們分布在個表中,分別是使用者表,使用者取出表,使用者充值表,每局遊戲表中。首先想到的就是要分組查詢,group by user.userid.因為有的使用者有充值記錄但不一定有取出記錄,所以需要...