zoukankan      html  css  js  c++  java
  • 常见的数据类型

    核心数据类型

    1)字符串

    • text:用于全文索引,该类型的字段将通过分词器进行分词
    • keyword:不分词,只能搜索该字段的完整的值

    2)数值型:long, integer, short, byte, double, float, half_float, scaled_float

    3)布尔:boolean

    4)二进制:binary(该类型的字段把值当做经过 base64 编码的字符串,默认不存储,且不可搜索)

    5)范围类型

    • 范围类型表示值是一个范围,而不是一个具体的值(integer_range, float_range, long_range, double_range, date_range)
    • 比如 age 的类型是 integer_range,那么值可以是 {"gte" : 20, "lte" : 40};搜索 "term" : {"age": 21} 可以搜索该值

    6)日期:date

    • 由于 Json 没有 date 类型,所以 ES 通过识别字符串是否符合 format 定义的格式来判断是否为 date 类型
    • format 默认为:strict_date_optional_time || epoch_millis。例如:"2022-01-01"、"2022/01/01 12:10:30" 这种字符串格式 或者是从开始纪元(1970年1月1日0点) 开始的毫秒数
    PUT localhost:9200/nba/_mapping
    {
        "properties":{
            "name":{
                "type":"text"
            },
            "team_name":{
                "type":"text"
            },
            "position":{
                "type":"text"
            },
            "play_year":{
                "type":"long"
            },
            "jerse_no":{
                "type":"keyword"
            },
            "title":{
                "type":"text"
            },
            "date":{
                "type":"date"
            }
        }
    }
    
    
    POST localhost:9200/nba/_doc/4
    {
        "name":"蔡x坤",
        "team_name":"勇士",
        "position":"得分后卫",
        "play_year":10,
        "jerse_no":"31",
        "title":"打球最帅的明星",
        "date":"2020-01-01"
    }
    
    POST localhost:9200/nba/_doc/5
    {
        "name":"杨超越",
        "team_name":"猴急",
        "position":"得分后卫",
        "play_year":10,
        "jerse_no":"32",
        "title":"打球最可爱的明星",
        "date":1610350870
    }
    
    POST localhost:9200/nba/_doc/6
    {
        "name":"吴亦凡",
        "team_name":"湖人",
        "position":"得分后卫",
        "play_year":10,
        "jerse_no":"33",
        "title":"最会说唱的明星",
        "date":1641886870000
    }

    复杂数据类型

    1)数组类型 Array

    • ES中没有专门的数组类型, 直接使用[]定义即可,数组中所有的值必须是同一种数据类型, 不支持混合数据类型的数组:
    • 字符串数组 [ "one", "two" ]
    • 整数数组 [ 1, 2 ]
    • Object对象数组 [ { "name": "Louis", "age": 18 }, { "name": "Daniel", "age": 17 }]
    • 同一个数组只能存同类型的数据,不能混存,比如 [ 10, "some string" ] 是错误的

    2)对象类型 Object

    对象类型可能有内部对象

    POST localhost:9200/nba/_doc/8
    {
        "name":"吴亦凡",
        "team_name":"湖人",
        "position":"得分后卫",
        "play_year":10,
        "jerse_no":"33",
        "title":"最会说唱的明星",
        "date":"1641886870",
        "array":[
            "one",
            "two"
        ],
        "address":{
            "region":"China",
            "location":{
                "province":"GuangDong",
                "city":"GuangZhou"
            }
        }
    }
    
    索引方式
    "address.region": "China",
    "address.location.province": "GuangDong",
    "address.location.city": "GuangZhou"
    
    POST localhost:9200/nba/_search
    {
        "query":{
            "match":{
                "address.region":"china"
            }
        }
    }

    专用数据类型

    IP类型:IP类型的字段用于存储IPv4或IPv6的地址, 本质上是一个长整型字段.

    POST localhost:9200/nba/_mapping
    {
        "properties":{
            "name":{
                "type":"text"
            },
            "team_name":{
                "type":"text"
            },
            "position":{
                "type":"text"
            },
            "play_year":{
                "type":"long"
            },
            "jerse_no":{
                "type":"keyword"
            },
            "title":{
                "type":"text"
            },
            "date":{
                "type":"date"
            },
            "ip_addr":{
                "type":"ip"
            }
        }
    }
    
    PUT localhost:9200/nba/_doc/9
    {
        "name":"吴亦凡",
        "team_name":"湖人",
        "position":"得分后卫",
        "play_year":10,
        "jerse_no":"33",
        "title":"最会说唱的明星",
        "ip_addr":"192.168.1.1"
    }
    
    
    POST localhost:9200/nba/_search
    {
        "query":{
            "term":{
                "ip_addr":"192.168.0.0/16"   // (192.168.0.0~192.168.255.255)
            }
        }
    }
  • 相关阅读:
    ACM训练二B题
    ACM训练二A题
    hdu 1213 -how many tables
    hdu 4135 -Co-prime
    acm-青蛙的约会哦~
    HDU1711 【kmp算法 基础题】
    有向无环图(DAG)模型之-----嵌套矩阵(与猴子与香蕉很像)
    关于 C/C++左移右移运算符 的总结
    acm集训训练赛(二)D题【并查集】
    acm集训训练赛A题【签到题】
  • 原文地址:https://www.cnblogs.com/jwen1994/p/12639244.html
Copyright © 2011-2022 走看看