docker安装ES及ik插件和ES常用查询语句

Posted 双斜杠少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker安装ES及ik插件和ES常用查询语句相关的知识,希望对你有一定的参考价值。

es docker 安装

安装过程如下:

首先在docker hub 拉取elk 镜像 (因为我用的是630 版本所以加了版本号)https://hub.docker.com/r/sebp/elk

关于容器更多信息查看 https://elk-docker.readthedocs.io/

docker pull sebp/elk:630 

启动命令( 如果想在后台启动容器的话可以 加 -d )

sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk

稍等片刻则启动成功 访问 http://localhost:5601 进入kibana

此时发现没有ik 插件so 安装 ik 插件

进入容器中es 的安装位置/opt/elasticsearch/bin/ 进入容器的命令如下

docker exec -it [es的容器id] /bin/bash

执行 安装ik 命令 (ik 需要对应es版本哦,可以 https://github.com/medcl/elasticsearch-analysis-ik/releases/ 在这里查找版本)

./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip

ik 安装下载后,需要重启容器

docker restart [es的容器id]

OK 此时已经安装成功了,你可以尽情的使用 ik 了
关于es和 spring boot 的结合使用 点击

es 多种查询

1. 新建mapping

新建学生的mapping
索引为 student_info
type 为student

PUT student_info

    "mappings" : 
      "student" : 
        "properties" : 
          "id" : 
            "type" : "keyword"
          ,
           "id_card" : 
            "type" : "keyword"
          ,
           "user_name" : 
            "type" : "text",
            "analyzer": "ik_max_word",
            "search_analyzer": "ik_smart",
            "fields": 
            "keyword": 
              "type": "keyword"
            
           
          ,
          "mobile" : 
            "type" : "keyword"
          ,
           "gender" : 
            "type" : "byte"
          ,
          "age" : 
            "type" : "integer"
          ,
           "height" : 
            "type" : "integer"
          ,
           "weight" : 
            "type" : "float"
          ,
          "update_time":
             "type":"date"  ,
               "format": "yyyy-MM-dd HH:mm:ss"
          
        
      
    
  
查询

此部分可参考文档:
https://www.cnblogs.com/ghj1976/p/5293250.html
https://blog.csdn.net/ZYC88888/article/details/82964474
https://blog.csdn.net/tanga842428/article/details/75127418

// 查询从第2条数据开始往后查询3条数据,也就是第3,4,5 条数据 用作分页
GET user_portrait_profiles/doc/_search
 "from": 2,
  "size": 3


//should 是或
// must 是 且
// term主要用于精确匹配哪些值


range 过滤
range过滤允许我们按照指定范围查找一批数据:

    "range": 
        "age": 
            "gte":  20,
            "lt":   30
        
    


范围操作符包含:

gt :: 大于
gte:: 大于等于
lt :: 小于
lte:: 小于等于

// bool 过滤
// bool 过滤可以用来合并多个过滤条件查询结果的布尔逻辑,它包含一下操作符:

must :: 多个查询条件的完全匹配,相当于 and。
must_not :: 多个查询条件的相反匹配,相当于 not。
should :: 至少有一个查询条件匹配, 相当于 or。


一个 bool 过滤器由三部分组成:


   "bool" : 
      "must" :     [],
      "should" :   [],
      "must_not" : [],
      "filter":    []
   

must ——所有的语句都 必须(must) 匹配,与 AND 等价。
must_not ——所有的语句都 不能(must not) 匹配,与 NOT 等价。
should ——至少有一个语句要匹配,与 OR 等价。
filter——必须匹配,运行在非评分&过滤模式。

//例子
//分页 keyword 查询

  "_source": [ "account_id", "user_source","id_card","user_name","mobile","birth","sex","age","height","weight" ],
	"query": 
		"bool": 
			"should": [
					"multi_match": 
						"fields": [
							"user_name.keyword", "user_name"
						],
						"query": "杨伊"
					
				,
				
					"term": 
						"id_card": "3110382918274"
					
				,
				
					"term": 
						"mobile": "15648220096"
					
				
			]
		
	,
	"sort": [
			"_score": 
				"order": "desc"
			
		,
		
			"mobile": 
				"order": "desc"
			
		

	],
	"from": 0,
	"size": 20



关于别名
## 设置别名
POST _aliases

  "actions": [
    
      "add": 
        "index": "student_info_v_update",
        "alias": "student_info"
      
    
  ]


2:查询别名  student_info 或 别名
GET student_info/_alias/*

结果

  "student_info_v_update": 
    "aliases": 
      "student_info": 
    
  


3、删除别名
POST /_aliases

    "actions": [
        "remove": "index": "student_info_v_update", "alias": "student_info"
    ]


4、修改别名
es没有修改别名的操作,只能先删除后添加
POST _aliases

  "actions" : ["remove" : "index" : "student_info_v_update" , "alias" : "student_info"],
  "actions" : ["add" : "index" : "student_info_v_update" , "alias" : "student_info"]

以上是关于docker安装ES及ik插件和ES常用查询语句的主要内容,如果未能解决你的问题,请参考以下文章

docker安装 es7.17.6+IK分词+Go elastic

docker安装 es7.17.6+IK分词+Go elastic

docker之es+es-head+kibana+ik分词器安装

es使用同义词插件注意事项

es使用同义词插件注意事项

es使用同义词插件注意事项