天天看點

es~text與keyword的選擇

elasticsearch裡的string類型被分為了text和keyword類型,下面詳細來介紹這兩種類型的使用場景:

text類型

  • 分詞後進行索引
  • 支援fields屬性,可以在fields中添加keyword子類型,以實作精确檢索
  • 分詞器預設standard ,對于中文來說就是按字分詞
  • 不支援聚合
  • 對text類型添加了fields屬性,以支援精确檢索
{
 "properties": {
   "my_field": {
      "type": "text",
      "fields":{
        "keyword":{
          "type":"keyword",
          "ignore_above":256
        }
      }
}
           
當需要對關鍵字進行分詞檢索,短語檢索時使用text,可能是個長文本

keyword類型

  • 支援精确檢索
  • 可以實作類型關系型資料庫中like模糊檢索
  • 支援聚合和排序
  • 支援按字數建立索引,以便節約索引空間
{
    "properties": {
        "type": {
            "ignore_above": 10, //大于10個字元将不進行索引,即無法檢索
            "type": "keyword"
        }
    }
}
           
當需要對其進行精确查找時,如使用者名,身份證,電子郵件,電話等可以用keyword

作者:倉儲大叔,張占嶺,

榮譽:微軟MVP

QQ:853066980

支付寶掃一掃,為大叔打賞!

es~text與keyword的選擇