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