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
支付寶掃一掃,為大叔打賞!
