日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Elasticsearch Mapping 详解

發(fā)布時(shí)間:2024/1/23 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Elasticsearch Mapping 详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. ?Mapping(映射)

Mapping 是定義文檔及其包含的字段是如何存儲和索引的過程

例如,我們用映射來定義:

哪些字符串字段應(yīng)該被當(dāng)做全文字段 哪些字段包含數(shù)字、日期或地理位置 是否應(yīng)該將文檔中所有字段的值索引到catch-all字段中 1.1. ?Mapping Type(映射類型)

每個(gè)索引都有一個(gè)映射類型,以決定文檔將被如何索引

映射類型包含兩部分:

  • Meta-fields

Meta-fields通常用于自定義文檔的元數(shù)據(jù)。例如,meta-fields包括文檔的 _index, _type, _id, _source等字段

  • Fields 或 properties

一個(gè)映射類型包含一個(gè)字段列表或?qū)傩粤斜?/p>

1.2. ?Field datatypes(字段數(shù)據(jù)類型)

每個(gè)字段有一個(gè)數(shù)據(jù)類型,它可以是下列之一:

簡單類型,比如 text, keyword, date, long, double, boolean , ip 支持JSON層級結(jié)構(gòu)的類型,比如 object 或者 nested 特別的類型,比如 geo_point, geo_shape, completion 1.3. ?Example mapping

復(fù)制代碼 curl?-X?PUT?"localhost:9200/my_index"?-H?'Content-Type:?application/json'?-d' {"mappings":?{"doc":?{?"properties":?{?"title":????{?"type":?"text"??},?"name":?????{?"type":?"text"??},?"age":??????{?"type":?"integer"?},??"created":??{"type":???"date",?"format":?"strict_date_optional_time||epoch_millis"}}}} } ' 復(fù)制代碼

創(chuàng)建一個(gè)索引名字叫“my_index”,并且添加一個(gè)映射類型叫“doc”,包含4個(gè)字段

2. ?Field datatypes(字段類型)

2.1. ?核心類型

  • 字符串類型

text , keyword

  • 數(shù)值類型

long , integer , short , byte , double , float , half_float , scaled_float

  • 日期類型

date

  • 布爾類型

boolean

  • 二進(jìn)制類型

binary

  • 范圍類型

integer_range , float_range , long_range , double_range , date_range

2.2. ?復(fù)雜類型

  • 數(shù)組類型

數(shù)組不需要一個(gè)專門的類型

  • 對象類型

object (PS:單個(gè)JSON對象)

    • 內(nèi)嵌類型

nested(PS:JSON對象數(shù)組)

2.3. ?地理類型

  • Geo_point類型

geo_point 用于地理位置經(jīng)緯度坐標(biāo)

  • Geo_shape類型

geo_shape 用于復(fù)雜形狀

2.4. ?專門的數(shù)據(jù)類型

  • IP類型

ip (用于IPv4和IPv6地址)

  • Completion類型

completion (用于自動補(bǔ)全提示)

  • Token count 類型

token_count (用于計(jì)數(shù)字符串中的token)

  • mapper-murmur3

murmur3 (計(jì)算值的hashcode,并將其存儲到索引中)

  • 過濾器類型

接受一個(gè)查詢語句

  • join 類型

為同一索引內(nèi)的文檔定義父/子關(guān)系

3. ?Meta-fields(元數(shù)據(jù)字段)

每個(gè)文檔都有與之關(guān)聯(lián)的元數(shù)據(jù)

3.1. ?標(biāo)識 ?元數(shù)據(jù)字段

_index  文檔屬于哪個(gè)索引

_id    ?文檔ID

_type   ?文檔的映射類型

_uid   由 _type和 _id組成的一個(gè)組合字段

3.2. 文檔來源 ?元數(shù)據(jù)字段

_source  文檔的原始JSON

_size    _source字段的長度(多少字節(jié))

3.3. ?索引 ?元數(shù)據(jù)字段

_all    索引其它字段的值,默認(rèn)情況下是禁用的

_field_names  所有非空字段

3.4. ?路由 ?元數(shù)據(jù)字段

_routing  一個(gè)自定義的路由值,用于分片的

3.5. ?其它 ?元數(shù)據(jù)字段

_meta   其它

4. ?小結(jié)

如果把Elasticsearch比作關(guān)系型數(shù)據(jù)庫的話,那么,映射就是建表,映射類型就是存儲引擎,字段類型就是字段類

總結(jié)

以上是生活随笔為你收集整理的Elasticsearch Mapping 详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。