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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM