天天看點

ElasticSearch學習總結6(ES資料類型)

es的字段類型: 

ElasticSearch學習總結6(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"
      }
    }
  }
}
           

執行結果:

ElasticSearch學習總結6(ES資料類型)

 查詢下剛才建立的索引庫資訊。

ElasticSearch學習總結6(ES資料類型)

插入一條記錄:

PUT /testindex/_doc/1
{
  "name":"張三",
  "age":30,
  "actiontime":"2021-09-16 22:30:45",
  "describe":"描述資訊"
}
           

執行結果: 

ElasticSearch學習總結6(ES資料類型)

查詢下剛才插入的記錄:

ElasticSearch學習總結6(ES資料類型)

如果設定了字段的類型,那麼在插入記錄時就要按照字段格式插入,不然會報錯,如下所示,日期格式的字段,插入數字類型就會報錯:

ElasticSearch學習總結6(ES資料類型)

 往索引庫中加幾條記錄,用于查詢。

ElasticSearch學習總結6(ES資料類型)

查詢name中含有"張"的資訊: 

ElasticSearch學習總結6(ES資料類型)

可以看到name中含有“張”的記錄都被查詢出來了,說明name字段是做了分詞的,同時也證明text類型是會自動分詞的。

下面再查詢下describe字段,查詢describe中含有“描述”二字的記錄:

ElasticSearch學習總結6(ES資料類型)

 沒有查詢到記錄,再查詢下describe為“描述資訊”的記錄:

ElasticSearch學習總結6(ES資料類型)

發現有一條記錄被查詢出來,這也說明了keyword類型是完全比對,沒有分詞。

繼續閱讀