【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es

一、说明

        1、通过kibana操作es

        2、使用dsl命令操作es

        3、需要已经安装es,必须

        4、需要已经安装kibana,非必须

        5、若是没有装kibana,可以用PostMan之类的请求工具

二、基础知识

1、Elasticsearch和RDBMS比较

 【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es_第1张图片

说明1: es与传统关系数据的对应关系,初学重点了解索引,字段,文档

说明2: 最重要的是索引,文档

2、可以到菜鸟过一遍介绍

https://www.cainiaojc.com/elasticsearch/elasticsearch-basic-concepts.html

~~

三、命令

1、创建索引

1)命令

PUT hg-index

说明1: hd-index即索引名

2)成功示例

【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es_第2张图片

 

~~

2、增加数据

1)格式

POST ${索引}/${类型}/${ID}  ${JSON消息体}

2)示例

POST hg-index/_doc/003
{
"name":"qf223x"
}

3)成功示例

~~

 3、修改数据

 1)格式

PUT ${索引}/${类型}/${ID}  ${JSON消息体}

2)示例

PUT hg-index/_doc/003
{
"name":"qf223x_put"
}

 3)响应结果

【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es_第3张图片

 

~~

4、查询所有

1)命令

GET hg-index/_search
{
  "query": {
    "match_all": {}
  }
}

说明1: hg-index为索引

说明2: _search为关键字,固定格式,记住即可

说明3: query : {"match_all":{}},固定格式,记住即可

2)响应数据

【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es_第4张图片

~~

5、模糊查询-通配符

1)关键字

wildcard

2)示例

GET hg-index/_search
{
    "query": {
        "wildcard" : { "name": "*223*" }
    }
}

说明1: 通配符, *

说明2: 占位符, ?

说明3: 通配符类似mysql的like

说明4: 占位符,即占一位

3)结果

 

【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es_第5张图片

~~

6、模糊查询-前缀

1)关键字

prefix

2)示例1

GET hg-index/_search
{ "query": {
    "prefix" : { "name": "qf" }
  }
}

3)结果1

4)示例2

GET hg-index/_search
{ "query": {
    "prefix" : { "name": "qfx" }
  }
}

5)结果2

【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es_第6张图片

 

~~

7、模糊查询-相似度

1)关键字

fuzzy 

说明1: 是一种误拼写时的fuzzy模糊搜索技术,用于搜索的时候可能输入的文本会出现误拼写的情况。

2)示例

GET hg-index/_search
{
    "query": {
        "fuzzy" : {
            "name": {
                "value": "qpx",
                "fuzziness": 1,
                "prefix_length": 1,
                "max_expansions": 100
            }
        }
    }
}

说明1: fuzziness:最大编辑距离【一个字符串要与另一个字符串相同必须更改的一个字符数】。默认为AUTO。
说明2: prefix_length:不会被“模糊化”的初始字符数。这有助于减少必须检查的术语数量。默认为0。
说明3: max_expansions:fuzzy查询将扩展到的最大术语数。默认为50。
说明4: transpositions:是否支持模糊转置(ab→ ba)。默认值为false。

3)结果

【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es_第7张图片

 

~~

8、查询非空值

1)构造初始化数据

POST hg-index/_doc/005
{
"name":""
}
POST hg-index/_doc/004
{
"name":null
}

2)命令:显示所有

GET hg-index/_search
{
  "query": {
    "match_all": {}
  }
}

【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es_第8张图片

3)显示非空

GET hg-index/_search
{
    "query": {
        "exists" : { "field" : "name" }
    }
}

【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es_第9张图片

 

说明1: 004被过滤掉了,即null值被过滤掉了

~~

9、查询null值

1)命令

GET hg-index/_search
{
    "query": {
        "bool": {
            "must_not": {
                "exists": {
                    "field": "name"
                }
            }
        }
    }
}

2)结果

【ES】 es | Elasticsearch 教程 | DSL命令 | 命令操作es_第10张图片

 

~~

10、其他查询

1)参考其他博主的内容

https://blog.csdn.net/qq_45443475/article/details/127359991

~~

你可能感兴趣的:(大数据,Java,Linux,elasticsearch,大数据)