es的字段類型:
keyword:存儲資料時,不會分詞建立索引;
text:存儲資料時,會自動分詞,并生成索引;
下面建立一個名詞為testindex的索引庫,并添加四個字段,分别指定不同的字段類型。
PUT /testindex
{
"mappings": {
"properties": {
"name":{
"type": "text"
},
"age":{
"type": "long"
},
"actiontime":{
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"describe":{
"type": "keyword"
}
}
}
}
執行結果:
查詢下剛才建立的索引庫資訊。
插入一條記錄:
PUT /testindex/_doc/1
{
"name":"張三",
"age":30,
"actiontime":"2021-09-16 22:30:45",
"describe":"描述資訊"
}
執行結果:
查詢下剛才插入的記錄:
如果設定了字段的類型,那麼在插入記錄時就要按照字段格式插入,不然會報錯,如下所示,日期格式的字段,插入數字類型就會報錯:
往索引庫中加幾條記錄,用于查詢。
查詢name中含有"張"的資訊:
可以看到name中含有“張”的記錄都被查詢出來了,說明name字段是做了分詞的,同時也證明text類型是會自動分詞的。
下面再查詢下describe字段,查詢describe中含有“描述”二字的記錄:
沒有查詢到記錄,再查詢下describe為“描述資訊”的記錄:
發現有一條記錄被查詢出來,這也說明了keyword類型是完全比對,沒有分詞。