Elasticsearch
Posted macht
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch相关的知识,希望对你有一定的参考价值。
Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与mysql类似的。
对比关系:
索引(indices)--------------------------------Databases 数据库
? 类型(type)-----------------------------Table 数据表
? 文档(Document)-----------------Row 行
? 字段(Field)------------Columns 列
- 创建索引
PUT wlkg2 - 查看索引
GET wlkg2
GET * 删除索引
DELETE wlkg2
DELETE * 删除全部,万万不可创建映射字段
PUT /索引库名/_mapping/类型名称
{
"properties": {
"字段名": {
"type": "类型", 类型,可以是text、long、short、date、integer、object等
"index": true, 是否索引,默认为true
"store": true, 是否存储,默认为false
"analyzer": "分词器"
}
}
}
PUT wlkg/_mapping/goods
{
"properties": {
"title": {
"type": "text",
"analyzer": "ik_max_word"
},
"images": {
"type": "keyword",
"index": "false"
},
"price": {
"type": "float"
}
}
}
查看映射
语法:GET /索引库名/_mapping
GET /wlkg/_mapping
- 新增数据
POST /索引库名/类型名
{
"key":"value"
}
//这种添加的id是自动生成的
POST /wlkg/goods/
{
"title":"小米手机",
"images":"http://image.wlkg.com/12479122.jpg",
"price":2699.00
}
//这种的添加是指定id的
POST /wlkg/goods/2
{
"title":"大米手机",
"images":"http://image.wlkg.com/12479122.jpg",
"price":2899.00
}
- 修改数据(把插入的POST改成PUT)
//在后面指定id,这样再次新插入的数据会把不同的数据覆盖原先的
PUT /wlkg/goods/2
{
"title":"超大米手机",
"images":"http://image.wlkg.com/12479122.jpg",
"price":3899.00,
"stock": 100,
"saleable":true
}
- 删除数据
DELETE /索引库名/类型名/id值
查询
- 通过kibana查看所有索引所有字段数据:
```GET _search
{
"query":{
"match_all":{}
}
}
- 查询所有类型
GET /索引库名/_search
{
"query":{
"查询类型":{
"查询条件":"查询条件值"
}
}
}
- 匹配查询
GET /wlkg/_search
{
"query":{
"match":{
"title":"小米电视"
}
}
}
- 所字段查询
GET /wlkg/_search
{
"query":{
"multi_match": {
"query": "小米",
"fields": [ "title", "subTitle" ]
}
}
}
- 词条匹配查询
GET /wlkg/_search
{
"query":{
"term":{
"price":2699.00
}
}
}
```
以上是关于Elasticsearch的主要内容,如果未能解决你的问题,请参考以下文章
使用标准库Ruby将数据标记到Elasticsearch批量中
Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能