ES常见搜索 作者:Admin Linux 时间:2022-11-01 17:10:35 1762人已阅读 个人博客 简介ES常见搜索 ### 分数计算{ "query": { "bool": { "must": [ { "terms": { "tag": ["省考", "公务员"] } }, { "term": { "tag": "公务员" } } ] } } } ``` { "query": { "function_score": { "query": { "bool": { "should": [ { "match": { "name": { "query": "协议班浙江国考2020", "boost": 1 } } }, { "term": { "category_id": { "value": 30, "boost": 1 } } } ] } }, "functions": [ { "field_value_factor": { "field": "view_count", "factor": 1.2, "modifier": "sqrt", "missing": 1 } } ], "score_mode": "sum", "min_score": 2 } }, "sort": [ { "_score": { "order": "desc" } } ], "_source": [ "name", "id", "view_count", "category_id" ] } ``` ### 标签搜索 ``` { "query": { "bool": { "must": [ { "terms": { "tag": ["省考", "公务员"] } }, { "term": { "tag": "公务员" } } ] } } } ``` ### 新增字段并赋予默认值 1.增加时赋值 ``` PUT 索引名/_mapping/doc { "properties": { "pushTime": { "type": "long" } } } POST 索引名/_update_by_query { "script": { "lang": "painless", "source": "if (ctx._source.pushTime== null) {ctx._source.pushTime= 1332466576}" } } ``` ``` PUT item_sku/_mapping { "properties": { "shop-bag": { "type": "integer" } } } POST item_sku/_update_by_query { "query": { "bool": { "must_not": [ { "exists": { "field": "shop_bag" } } ] } }, "script": { "source": "ctx._source['shop_bag'] = 0" } } ``` ### 新增字段并赋予默认值 2.先增加后赋值 ``` PUT item_sku/_mapping { "properties": { "shop-bag": { "type": "integer" } } } POST item_sku/_update_by_query { "query": { "bool": { "must_not": [ { "exists": { "field": "shop_bag" } } ] } }, "script": { "source": "ctx._source['shop_bag'] = 0" } } ``` ### IK分词器 ``` { "settings": { "analysis": { "analyzer": { "ik": { "tokenizer": "ik_max_word" } } } }, "mappings": { "_doc": { "properties": { "id": { "type": "long" }, "name": { "type": "text", "analyzer": "ik_max_word" }, "category": { "type": "text", "analyzer": "ik_max_word" }, "category_id": { "type": "integer" }, "max_price": { "type": "float" }, "min_price": { "type": "float" }, "click_count": { "type": "integer" }, "view_count": { "type": "integer" } } } } } ``` ### ngram分词器 ``` { "settings": { "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "my_tokenizer" } }, "tokenizer": { "my_tokenizer": { "type": "ngram", "min_gram": 1, "max_gram": 2, "token_chars": [ "letter", "digit" ] } } } }, "mappings": { "_doc": { "properties": { "created_at": { "type": "date" }, "id": { "type": "long" }, "oa_user_id": { "type": "long" }, "phone": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "sso_id": { "type": "long" }, "unionid": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "updated_at": { "type": "date" }, "wechat_name": { "type": "text", "analyzer": "my_analyzer", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "work_user_id": { "type": "long" } } } } } ``` 上一篇: 暂无 下一篇: 二进制搭建PHP