es支持的字段類型
字段類型
核心數據類型
字符串: text,keyword(不分詞,智能使用完整詞搜索)
數值型:long,integer,short,byte,double,float,half_float,scaled_float
布爾類型:boolean
二進制: binary(二進制經過base64編碼之后的字符串,不可搜索)
范圍類型:integer_range,float_range,long_range,double_range,date_rage
日期: date
復雜數據類型
數組,Array: es并無專門的數組類型,可以在插入文檔的時候直接聲明一個數組插入即可,([1,2]-整形數組,[”1“,”2“]-字符串數組,[{"name":"nick"},{"name": "elaine"}])
對象,Object:
專用數據類型,如IP;
官方文檔:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html
舉例
# 創建學生索引,age_range代表讀書的年級 curl -X PUT 'localhost:9200/student' -H "Content-Type: application/json" -d ' { "mappings":{ "properties": { "name": { "type": "text" }, "age_range": { "type": "integer_range" } } } } ' # age_range 大于0 小于200 curl -X PUT 'localhost:9200/student/_doc/1' -H "Content-Type: application/json" -d ' { "name": "張三", "age_range": { "gte": 5, "lte": 25 } } ' # 搜索20歲還在讀書的人 curl -X POST 'localhost:9200/student/_search' -H "Content-Type: application/json" -d ' { "query":{ "term": { "age_range": 20 } } } ' # 添加數組類型 curl -X PUT 'localhost:9200/student/_doc/2' -H "Content-Type: application/json" -d ' { "name": "張三", "age_range": { "gte": 5, "lte": 25 }, "array1": [1,2,3] } ' # 添加對象類型 curl -X PUT 'localhost:9200/student/_doc/3' -H "Content-Type: application/json" -d ' { "name": "張三", "age_range": { "gte": 5, "lte": 25 }, "address": { "contry": "China", "location": { "province": "廣東", "city": "深圳" } } } ' # 根據對象的類容搜索 curl -X POST 'localhost:9200/student/_search' -H "Content-Type: application/json" -d ' { "query":{ "match": { "address.location.city": "深圳" } } } '
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。