ES--Kibana相关操作创建索引和Mapping


Kibana控制台命令:

1.创建索引infomation并创建映射mapping (一步搞定)

PUT information { "mappings": { "record":{ "properties": { "ip":{"type": "text"}, "count":{"type": "long"}, "create_type":{"type": "date"}, "i_type":{"type": "text"} } } } } 2.插入一条数据
PUT information/record/1 { "ip":"10.192.168.4", "count":"1455112", "create_type": "2018-03-07", "i_type":"IP数据" }

3.再插入一条数据 PUT information/record/2 { "ip":"10.192.168.12", "count":"1455112", "create_type": "2018-03-08", "i_type":"IP数据" }
4.查看所有数据 GET information/_search
5.查看索引配置 GET information/_settings 6.得到所有索引信息 GET information
7.更新第一条索引信息(相当于覆盖!!!)

    

PUT information/record/1
{
"ip":"10.192.168.4",
"count":"6666",
"create_type": "2018-03-07",
"i_type":"1111数据"

}

 

 

 

 

实际案例:

{
	"from": 0,
	"size": "20",
	"query": {
		"function_score": {
			"query": {
				"bool": {
					"should": [{
						"wildcard": {
							"work_name": {
								"wildcard": "**"
							}
						}
					}, {
						"term": {
							"work_name": {
								"term": ""
							}
						}
					}, {
						"match": {
							"work_name_ik": {
								"query": "",
								"boost": 0.3,
								"minimum_should_match": "30%"
							}
						}
					}, {
						"wildcard": {
							"labels": {
								"wildcard": "**"
							}
						}
					}, {
						"wildcard": {
							"classify_1_name": {
								"wildcard": "**"
							}
						}
					}, {
						"wildcard": {
							"classify_2_name": {
								"wildcard": "**"
							}
						}
					}, {
						"wildcard": {
							"classify_3_name": {
								"wildcard": "**"
							}
						}
					}],
					"minimum_should_match": 1,
					"filter": {
						"bool": {
							"must": [{
								"term": {
									"classify_2_name.keyword": {
										"term": "\u5e73\u9762"
									}
								}
							}, {
								"term": {
									"status": {
										"term": 2
									}
								}
							}, {
								"term": {
									"is_del": {
										"term": 0
									}
								}
							}],
							"must_not": []
						}
					}
				}
			},
			"functions": [{
				"script_score": { "script": { "lang": "painless", "source": "if(doc['timestamp'].value !=0){def create_time=0;if(params.gender-doc['timestamp'].value>2592000){create_time = 0;}else{create_time=(2592000+doc['timestamp'].value-params.gender)*30\/2592000}
def level=0;if(doc['recommend_diff'].value==4){level=30}else if(doc['recommend_diff'].value==3){level=22.5}else if(doc['recommend_diff'].value==2){level=15}else if(doc['recommend_diff'].value==1){level=7.5}else if(doc['recommend_diff'].value==0){level=0}
def comment_num=0;if(doc['comment_num'].value<=100){if(params.gender-doc['timestamp'].value<=2592000 && params.gender-doc['timestamp'].value>23*24*3600){comment_num=(doc['comment_num'].value\/5)*0.6}
else if(params.gender-doc['timestamp'].value>259200 &&params.gender-doc['timestamp'].value<=7*24*3600){comment_num=(doc['comment_num'].value\/5)*1.8}
else if(params.gender-doc['timestamp'].value<=3*24*3600){comment_num=(doc['comment_num'].value\/5)*3}else{comment_num=0}}else{comment_num = 3}def like_num=0;if(doc['like_num'].value<=100)
{if(params.gender-doc['timestamp'].value<=2592000 && params.gender-doc['timestamp'].value>23*24*3600){like_num=(doc['like_num'].value\/5)*2}else if(params.gender-doc['timestamp'].value>259200 &&params.gender-doc['timestamp'].value<=7*24*3600)
{like_num=(doc['like_num'].value\/5)*6}else if(params.gender-doc['timestamp'].value<=3*24*3600){like_num=(doc['like_num'].value\/5)*10}else{like_num=0}}def user_recommend_level=0;if(doc['user_recommend_level_val_alia'].value==4){user_recommend_level=7}
else if(doc['user_recommend_level_val_alia'].value==3){user_recommend_level=7*0.75}else if(doc['user_recommend_level_val_alia'].value==2){user_recommend_level=7*0.5}else if(doc['user_recommend_level_val_alia'].value==1){user_recommend_level=7*0.25}
else if(doc['user_recommend_level_val_alia'].value==0){user_recommend_level=0}def user_fans=0;if(doc['user_fan_nums_alia'].value<=100){if(params.gender-doc['timestamp'].value>30*24*3600){user_fans = 0;}
else{user_fans= doc['user_fan_nums_alia'].value\/100*5}}
else{user_fans=5}return create_time+level+comment_num+like_num+user_recommend_level+user_fans;}else{return 30;}", "params": { "gender": 1585107887 } } } }] } }, "sort": [], "min_score": 1 }

  params代表搜索时传给来的参数。 score 使用打分的。如果不排序可以写成:

 

"script_score": {
"script": "_score*1"
}

 

 

拓展:

 可一次性创建索引和mapping(映射)以及需要做的匹配:

本人实际例子,后来者可以复制本案例,只需修改下面的mapping即可快速创建索引:

PUT information2
{
  "settings": {
    "number_of_replicas": 1,
    "number_of_shards": 5,
    "analysis": {
      "analyzer": {
        "str_lowercase":{
          "tokenizer":"keyword",
         "filter": ["lowercase", "asciifolding"]     
        }
      }
    }
  }, 
  "mappings": {
    "record":{
      "properties": {
        "ip":{"type": "text"},
        "count":{"type": "long"},
        "create_type":{"type": "date"},
        "i_type":{"type": "text"}
         
      }    }
  }
}

删除索引  参考

  1. POST 索引名称/文档名称/_delete_by_query
  2. {
  3. "query":{
  4. "term":{
  5. "_id":100000100
  6. }
  7. }
  8. }

 

 

 

PS:  怎么清空单个索引数据

POST new_designer_work_1/_delete_by_query
{
"query": {"match_all": {}}
}

 

其中 new_designer_work_1 为索引名称

 

 

 

https://www.cnblogs.com/xionggeclub/p/11959150.html

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM