1.创立索引
创立一个名为 products 的索引,用来存储商品数据。
分片和正本参数阐明:
number_of_shards
:分片数量,默认值是 5number_of_replicas
:正本数量,默认值是 1
咱们有三个节点,在每个节点上都创立一个分片。每个分片在另两个节点上各创立一个正本。
# 创立索引,命名为 productsPUT /products{ "settings": { "number_of_shards": 3, "number_of_replicas": 2 }}
2.创立映射
在 products 索引中创立映射。
# 定义mapping,数据结构PUT /products/_mapping{ "properties": { "id": { "type": "long" }, "title": { "type": "text" }, "category": { "type": "text" }, "price": { "type": "float" }, "city": { "type": "text" }, "barcode": { "type": "keyword" } }}
查看映射
GET /products/_mapping
映射(数据结构)
相似于数据库表构造,索引数据也被分为多个数据字段,并且须要设置数据类型和其余属性。
映射,是对索引中字段构造的定义和形容。
罕用类型:
数字类型:
- byte、short、integer、long
- float、double
- unsigned_long
字符串类型:
- text : 会进行分词
- keyword : 不会进行分词,实用于email、主机地址、邮编等
日期和工夫类型:
- date
3.增加文档
增加的文档会有一个名为_id
的文档id,这个文档id能够主动生成,也能够手动指定,通常能够应用数据的id作为文档id。
# 增加文档PUT /products/_doc/10033{ "id":"10033", "title":"新一代PLAY:5无线智能音响系统", "category":"潮酷数码会场", "price":"3980.01", "city":"上海", "barcode":"527848718459"}PUT /products/_doc/10034{ "id":"10034", "title":" 高清电视盒子wifi 64位硬盘播放器", "category":"潮酷数码会场", "price":"398.00", "city":"浙江杭州", "barcode":"522994634119"}PUT /products/_doc/10035{ "id":"10035", "title":" 重低音入耳式防脱降噪音乐耳机", "category":"潮酷数码会场", "price":"860.00", "city":"浙江杭州", "barcode":"526558749068"}PUT /products/_doc/10036{ "id":"10036", "title":"2.0无线蓝牙录音师头戴式耳机", "category":"潮酷数码会场", "price":"2889.00", "city":"上海", "barcode":"37147009748"}PUT /products/_doc/10037{ "id":"10037", "title":"美国原创WiFi连贯 家庭桌面音箱", "category":"潮酷数码会场", "price":"1580.01", "city":"上海", "barcode":"527783392239"}
也能够主动生成 _id
值:
POST /products/_doc{ "id":"10027", "title":"vivo X9前置双摄全网通4Gvivox9", "category":"手机会场", "price":"2798.00", "city":"广东东莞", "barcode":"541396973568"}
查看文档:
GET /products/_doc/10037`
查看指定文档title字段的分词后果:
GET /products/_doc/10037/_termvectors?fields=title
4.批改文档
底层索引数据无奈批改,批改数据实际上是先删除再从新增加。
两种批改形式:
- PUT:对文档进行残缺的替换
- POST:能够批改一部分字段
批改价格字段的值:
# 批改文档 - 替换PUT /products/_doc/10037{ "id":"10037", "title":"美国原创WiFi连贯 家庭桌面音箱", "category":"潮酷数码会场", "price":"9999.99", "city":"上海", "barcode":"527783392239"}
查看文档:
GET /products/_doc/10037
批改价格和城市字段的值:
# 批改文档 - 更新局部字段POST /products/_update/10037{ "doc": { "price":"8888.88", "city":"深圳" }}
查看文档:
GET /products/_doc/10037
5.删除文档
`DELETE /products/_doc/10037`
清空
POST /products/_delete_by_query{ "query": { "match_all": {} }}
6.删除索引
# 删除 products 索引DELETE /products
7.复合查问
创立索引
PUT /pditems{ "settings": { "number_of_shards": 3, "number_of_replicas": 2 }, "mappings": { "properties": { "id": { "type": "long" }, "brand": { "type": "text" }, "title": { "type": "text" }, "sell_point": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart" }, "price": { "type": "float" }, "image": { "type": "keyword" }, "cid": { "type": "long" }, "status": { "type": "byte" }, "created": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss" }, "updated": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss" } } }}
查看数据
搜寻 pditems
索引中全副 3160 条数据:
GET /pditems/_search{ "query": { "match_all": {} }, "size": 3160}
8.搜寻文档
搜寻所有数据
# 搜寻 pditems 索引中全副数据POST /pditems/_search{ "query": { "match_all": {} }}
关键词搜寻
# 查问 pditems 索引中title中蕴含"电脑"的商品POST /pditems/_search{ "query": { "match": { "title": "电脑" } }}
搜寻后果过滤器
# 价格大于2000,并且title中蕴含"电脑"的商品POST /pditems/_search{ "query": { "bool": { "must": [ { "match": { "title": "电脑" } } ], "filter": [ { "range": { "price": { "gte": "2000" } } } ] } }}
搜寻后果高亮显示
POST /pditems/_search{ "query": { "multi_match":{ "query": "手机", "fields": ["title", "sell_point"] } }, "highlight" : { "pre_tags" : ["<i class="highlight">"], "post_tags" : ["</i>"], "fields" : { "title" : {}, "sell_point" : { "pre_tags": "<em>", "post_tags": "</em>" } } }}