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的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch笔记九之优化

使用标准库Ruby将数据标记到Elasticsearch批量中

Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能

Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能

Elasticsearch-PHP 索引操作

elasticsearch 特殊字段