重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
本篇內容主要講解“Elasticsearch7有什么優點”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Elasticsearch7有什么優點”吧!
創新互聯公司-專業網站定制、快速模板網站建設、高性價比正寧網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式正寧網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋正寧地區。費用合理售后完善,10多年實體公司更值得信賴。
Elasticsearch7與之前版本最大的區別就是舍棄了type的概念,默認的type為"_doc"。
先建索引
PUT /shop
dynamic,推薦用strict
dynamic設為true時,新增字段的文檔寫入時,Mapping同時被更新
dynamic設為false時,Mapping不會被更新,新增字段的數據無法被索引,但是會出現在_source中
dynamic設為strict,文檔將寫入失敗
修改dynamic參數
POST /shop/_mapping { "dynamic": strict }
text類型 可以被分詞 但是 keyword 分詞是不能用的 要全匹配
修改或新增mapping字段type
POST /shop/_mapping { "properties":{ "name":{ "type":"text", }, "content":{ "type":"text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart" }, "createTime":{ "type":"date", "format": "yyyy-MM-dd HH:mm:ss" } } }
新增數據:
-POST shop/_doc/558pa4e2 { "name":"圓領韓版學生男女毛衣秋冬裝上裝", "breif":"150件左右圓領韓版學生男女毛衣秋冬裝,長袖寬松套頭情侶裝針織衫上衣", "minPrice":"15", "sn":"558pa4e2", "createTime":"2019-10-07 14:30:23", "sort":"100", "tags":"9月第2波" }
為索引添加別名
-POST /_aliases { "actions": [ { "add": { "index": "shop-item", "alias": "shop-item-alias" } } ] }
分詞器測試:
POST /_analyze { "analyzer": "ik_smart", "text": "關于加快建設合肥地鐵七號線的通知說明" }
單字段查詢:在name中查詢有"女裝"的數據
POST /shop/_doc/_search { "query":{ "match":{ "name":"女裝" } } }
單字段查詢:在name中查詢有"女裝"的數據,且只返回name、brief數據
POST /shop/_doc/_search { "query":{ "match":{ "name":"女裝" } }, "_source": ["name","brief"] }
分頁查詢
POST /shop/_doc/_search { "query":{ "match":{ "name":"女裝" } }, "_source": ["name","brief"], "from":0, "size":10 }
排序,在name中查詢有"女裝"的數據,并按createTime倒序
{ "query":{ "match":{ "name":"女裝" } }, "sort":{ "createTime": { "order": "desc" } } }
多字段排序,排序,在name中查詢有"女裝"的數據,先按sort字段排序,如果相同再按createTime倒序
{ "query":{ "match":{ "name":"女裝" } }, "sort": { "sort":"asc", "createTime": "desc" } }
查詢"name"字段中包含"女裝"和"品牌"的所有數據
POST /shop/_doc/_search { "query": { "bool": { "must": [ { "match": { "name": "品牌" } }, { "match": { "name": "女裝" } } ] } } }
查詢"name"字段中包含"女裝"或"品牌"的所有數據
POST shop/_doc/_search { "query": { "bool": { "should": [ { "match": { "name": "品牌" } }, { "match": { "name": "女裝" } } ] } } }
查詢"name"字段中既不包含"女裝"也不包含"品牌"的所有數據
POST /shop/_doc/_search { "query": { "bool": { "must_not": [ { "match": { "name": "品牌" } }, { "match": { "name": "女裝" } } ] } } }
多字段查詢:在name,與brief中查詢有"女裝"的數據
POST /shop/_doc/_search { "query":{ "multi_match":{ "query":"女裝", "fields":["name","brief"] } } }
精確查找:查找tags既屬于“9月第1波”又屬于"9月第2波"的數據(terms用于精確查找,一般用于非text字段)
POST /shop/_doc/_search { "query":{ "bool":{ "must":[ {"term":{ "tags":"9月第1波" }}, {"term":{ "tags":"9月第2波" }} ] } } }
過濾器的用法,filter的效率高,盡可能的用filter
POST /shop/_doc/_search { "query":{ "bool":{ "filter":[ { "term":{"tags":"9月第1波"} }, { "term":{"tags":"9月第2波"} } ] } } }
范圍查詢
POST /shop/_doc/_search { "query":{ "range":{ "minPrice":{ "gte":"4", "lte":"5" } } } }
簡單聚合
POST /shop/_doc/_search { "aggs":{ "tagsGroup":{ "terms":{ "field":"tags" } }, "priceGroup":{ "terms":{ "field":"minPrice" } } } }
到此,相信大家對“Elasticsearch7有什么優點”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!