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 &¶ms.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 &¶ms.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"} } } } }
刪除索引 參考
- POST 索引名稱/文檔名稱/_delete_by_query
- {
- "query":{
- "term":{
- "_id":100000100
- }
- }
- }
PS: 怎么清空單個索引數據
POST new_designer_work_1/_delete_by_query
{
"query": {"match_all": {}}
}
其中 new_designer_work_1 為索引名稱
https://www.cnblogs.com/xionggeclub/p/11959150.html