es使用笔记

启动es \es_demo\elasticsearch-7.15.2\bin bat http://localhost:9200/

启动kibana \es_demo\kibana-7.15.2-windows-x86_64\bin bat http://localhost:5601/ -> http://localhost:5601/app/dev_tools#/console

汉化kibana \es_demo\kibana-7.15.2-windows-x86_64\config Kibana.yml i18n.locale: "zh-CN" 重启kibana

ik分词器 elasticsearch-analysis-ik \es_demo\elasticsearch-7.15.2\plugins 下创建目录 ik 解压 重启es
添加词典 \es_demo\elasticsearch-7.15.2\plugins\ik\config 先建一个my.dic 把自己的词加进去 然后 IKAnalyzer.cfg.xml my.dic 重启es

启动 elasticsearch-head es_demo\elasticsearch-head> npm run start

注意:版本 es kibana ik 要统一

添加数据

PUT /test1/type1/1
{
  "name":"郭饭",
  "age":80,
  "desc":"吃饼",
  "tags":["书","跑步","男"]
  
}

**创建索引结构 和 理解 text 和 keyword **

PUT test_demo  //index 名 要小写  
{
    "mappings":{
        "properties": {
            "name":{
                "type": "text"
            },
            "desc":{
                "type": "keyword"
            }
        }
    }
}

//加数据
PUT test_demo/_doc/1
{
    "name":"google name",
    "desc":"google desc"
}

PUT test_demo/_doc/2
{
    "name":"google name",
    "desc":"google desc2"
}

GET _analyze    //整体
{
    "analyzer":"keyword",
    "text":"google name"
}


GET _analyze  //单个 
{
    "analyzer":"standard",
    "text":"google name"
}

GET test_demo/_search  //模糊有这个就好
{
  "query": {
    "term": {
        "name": "google"
    }
  }
}

GET test_demo/_search  //精确不会被拆分
{
  "query": {
    "term": {
        "desc": "google desc2"
    }
  }
}


查询数据

//获取 id =1
GET /test1/type1/1 

//指定name 
GET /test1/type1/_search?q=name:小米  

GET /test1/type1/_search
{
  "query":{
    "match": {
      "name": "abc"
    }
  }
}
//获取指定字段
GET /test1/type1/_search
{
  "query":{
    "match": {
      "name": "abc"
    }
    
  }
  ,
    "_source":  ["name","age"]
    
}
//排序 
GET /test1/type1/_search
{
    "query":{
        "match": {
            "name": "abc"
        }
    },
    "sort":[
        {
            "age":{
                "order":"desc"
            }
        }
    ]
}

//分页 
GET /test1/type1/_search
{
    "query":{
        "match": {
            "name": "abc"
        }
    },
    "sort":[
        {
            "age":{
                "order":"desc"
            }
        }
    ],
    "from":0,
    "size":1
}

//bool匹配 must 与and   should 或or   must_not 非not  
GET /test1/type1/_search
{
    "query":{
        "bool": {
            "must": [
                {
                    "match": {
                        "name": "abc"
                    }
                },{
                    "match": {
                        "age": 9
                    }
                }
            ]
        }
    }
}
//过滤器 filter   range 范围  
eq  : EQUAL等于
neq : NOT EQUAL不等于
gt  : GREATER THAN大于 
lt  : LESS THAN小于
gte : GREATER THAN OR EQUAL 大于等于
lte : LESS THAN OR EQUAL 小于等于

GET /test1/type1/_search
{
    "query":{
        "bool": {
            "must": [
                {
                    "match": {
                        "name": "abc"
                    }
                }
            ],
            "filter": {
                "range": {
                    "age": {
                        "gt": 5
                    }
                }
            }
        }
    }
}

//模糊匹配 tags 里面有男 和跑步的 有一个就匹配 多个 空格隔开 
GET /test1/type1/_search
{
    "query":{
        "match": {
            "tags": "跑步 男"
        }
    }
}  
//分词查询 
//term 通过倒排索引 精确匹配
//match 使用分词器解析 
//text 会被分词器解析 keyword 不会被分词器解析 


高亮查询

GET /test1/type1/_search    //默认是em标签   "<em>跑</em><em>步</em>"
{
    "query":{
        "match": {
            "tags": "跑步 男"
        }
    },
        "highlight":{  //高亮
            "fields": {
                "tags": {} //字段 
            }
        }
}    


##自定义高亮显示##
GET /test1/type1/_search   //自定义标签 pre_tags  post_tags
{
    "query":{
        "match": {
            "tags": "跑步 男"
        }
    },
        "highlight":{
            "pre_tags": "<p class ='key' style='color:red'", 
             "post_tags": "</p>", 
             "fields": {
                 "tags": {}
              }
        }
}    




//显示
"highlight" : {
    "tags" : [
        "<p class ='key' style='color:red'跑</p><p class ='key' style='color:red'步</p>",
        "<p class ='key' style='color:red'男</p>"
    ]
}

修改单个

POST /test1/type1/1/_update  //_update
{
  "doc":{
      "name":"马牛逼"
  }
}

posted @ 2022-10-14 14:57  列王纪  阅读(57)  评论(1)    收藏  举报