久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Elasticsearch簡介

     Coder編程 2020-11-21

      疫情已經持續了好幾個月了,作為程序員滴我們也幫不上什么忙,只有老老實實呆在家里或者出門一定戴口罩準守一些規則,不給國家添亂。不過最近疫情開始有所扭轉,但是還是對國家經濟,對企業業務造成了很大的影響,我也被停止了實習。接下來,可能會面臨著失業,破產等等嚴肅的問題。但是我們還是需要繼續學習,提高自己的競爭力,才能在疫情過后,有自己的一席之地,可以在合適自己的地方發揮自己的作用。中國加油,武漢加油。

    全文檢索Elasticsearch

    1. 相關特點:

    • 分布式,無需人工搭建集群(solr需要人為配置,使用zookeeper作為注冊中心)
    • Restful風格,一切API都遵循Rest原則,容易上手
    • 實時搜索,數據更新在ElasticSearch中幾乎是完全同步的。

    2. 操作索引

    1. 基本概念:Elasticsearch是基于Lucene的全文檢索庫,本質也是存儲數據,很多概念與MySql類似的。
    2. // 對比關系
      索引集(indices)------------------------------------------------Databases 數據庫 類型(type)---------------------------------------------Table 數據表 文檔(Document)-----------------------------Row 行 字段(Field)----------------------Columns列

       

    3. 相關解釋:
      • 類型(type):一個索引庫下可以有不同類型的索引,比如商品類型、訂單類型,其數據格式不同。不過這回導致索引庫混亂,因此未來版本會移除這個概念。
      • 映射配置(mappings):字段的數據類型、屬性、是否索引、是否存儲等特性。
      • 分片(shard):數據拆分后的各個部分。
      • 副本(replica):每個分片的復制。
      • 注意:Elasticsearch本身就是分布式的,因此即使你只有一個節點,Elasticsearch默認也會對你的數據進行分片和副本操作,當你向集群添加數據時,數據也會在新加入的節點中進行平衡。
    a、創建索引:
    • 請求方式:PUT
    • 請求路徑:ip地址:端口號/索引庫名(下文相關 HTTP請求路徑 省略)
    • 請求參數:json格式
    • 例子:
      {
             // settings: 索引庫的設置。
      "settings": {
      "number_of_shards": 3,     // 分片數量
      "number_of_replicas": 2    // 副本數量
      }
      }
    b、刪除索引
    • 請求方式:DELETE
    • 請求路徑:/索引庫名
    c、查詢索引
    • 請求方式:GET
    • 請求路徑:/索引庫名
    d、創建映射字段
    • 請求方式:PUT
    • 請求路徑:/索引庫名/_mapping/類型名稱
    • 請求參數:json格式
      • 例子:
        {
        "properties": {
        "字段名": {
        "type": "類型",
        "index": true,
        "store": true,
        "analyzer": "分詞器"  // 分詞器
        }
        }
        }
        
    • 相關解釋
      • 類型名稱:就是type的概念,類似于數據庫中的不同表
      • 字段名:任意寫,可以指定許多屬性,例如
        • type類型,可以是String類型(text【可分詞】、keyword【不可分詞】)、long、short、date、integer、object等。
          • 注意:如果存的是對象,比如:{girl: {name:"rose",age:21}} 會被處理成兩個字段:girl.name和girl.age
        • index:是否索引,默認為true。如果索引,則可以用來搜索。
        • store:是否存儲,默認為false。在Elasticsearch中,即便store設為false,也可以搜索到結果(原因:Elasticsearch在創建文檔搜索時,會將文檔中的原始數據備份,保存到一個叫做_source的屬性中。而且我們可以通過過濾_source來選擇那些需要顯示,那些不顯示。

    3. 新增數據

    • 隨機生成id
      • 請求方式:POST
      • 請求路徑:/索引庫名/類型名稱
      • 請求參數: { "key":  "value" }
    • 自定義id
    • POST /索引庫名/類型名稱/id值
      {
      ...
      }
      
    • 智能判斷:
      • solr:新增數據時,只能使用提前配置好映射屬性的字段,否則會報錯。
      • Elasticsearch:不需要給索引庫設置任何mapping映射,它也可以根據你輸入的數據來判斷類型,動態添加數據映射。(如果存儲的是String類型數據,ES無智能判斷,它會存入兩個字段。例如:存入一個name字段,智能形成兩個字段  name: text類型    name.keyword: keyword類型)

    4. 修改數據:

    • 請求方式: PUT
    • 請求路徑:/索引庫名/類型名稱/id值
    • 注意:修改必須指定id。id對應的文檔存在,則修改;id對應文檔不存在,則新增。

    5.  查詢

    • 基本查詢:
      GET /索引庫名/_search
      {
      "query": {
      "查詢類型": {
      "查詢條件":"查詢條件值"
      }
      }
      }
      
      例子:  GET /article/_search
      {
      "query": {
      "match": {
      "title": {
      "query": "廣州上海",
      "operator":"and"
      }
      }
      }
      }
      
      • 查詢類型:
        • 查詢所有(match_all)【全文檢索】
        • 多字段查詢(multi_match)
        • GET /索引庫名/_search
          {
          "query": {
          "multi_match": {
          "query": "查詢內容",
          "fields": ["查詢字段1","查詢字段2"]
          }
          }
          }
        • 詞條匹配(term):查詢被用于精確值匹配,這些精確值可能是數字、時間、布爾或者那些未分詞的字符串。推薦除了text以外的類型用term,減少分詞帶來的消耗,例
          GET /索引庫名/_search
          {
          "query": {
          "term": {
          "查詢字段":"查詢內容"
          }
          }
          }
        • 結果過濾:{ "_source" : [ "過濾字段1" , "過濾字段2" ] }。
          {
          "_source": {
          # "includes": "過濾字段"# 和上面作用一樣
          "excludes":"排除過濾字段"
          }
          }
    • 高級查詢
      • 模糊查詢(fuzzy)
      • 范圍查詢(range)
        GET /索引庫名/_search
        {
        "query": {
        "range": {
        "查詢字段": {
        "gte": 數值,# 大于,可省略
        "lte": 數值# 小于,可省略
        }
        }
        }
        }
      • 布爾查詢和過濾
        GET /索引庫名/_search
        {
        "query": {
        "bool": {
        "must": [
        {"match": {
        "查詢字段": "查詢內容"
        }}
        ],
        "filter": {
        "range": {
        "過濾字段": {
        "gte": 數值
        }
        }
        }
        }
        }
        }
      • 排序
        "sort": [
        {
        "排序字段": {
        "order": "desc"  # 降序排序
        }
        }
        ]
      • 分頁: "from" : 數值   "size" : 數值

    6. 聚合aggregations:實現對數據的統計、分析

    • 基本概念:包括多種類型,最常見的兩種,一個叫 桶(bucket),一個叫 度量(metrics)
      • 桶:作用:是按照某種方式對數據進行分組,每一組數據在es中稱為一個桶(組)。
        • Terms Aggregation:根據詞條內容分組,詞條內容完全匹配的為一組
        • Range Aggregation:數值和日期的范圍分組,指定開始和結束,然后按段分組
        • Histogram Aggregation:根據數值階梯(Inteval)分組
        • Date Aggregation:根據日期階梯分組,例如:給定階梯為周,會自動每周分為一組
        • GET /索引庫名/_search
          {
          "aggs": {
          "桶分組名稱": {
          "桶分組方式": {
          "field": "分桶字段"
          }
          }
          }
          }
      • 度量:分組完以后,一般會對組中的數據進行聚合運算,例如:求平均值、最大、最小、求和等,這些在es中稱為度量
        • Avg Aggregation:求平均值
        • Max Aggregation:求最大值
        •  Min Aggregation:求最小值
        •  Percentiles Aggregation:求百分比
        •  Stats Aggregation:同時返回avg、max、min、sum、count等
        •  Sum Aggregation:求和
        • Top hits Aggregation:求前幾
        • Value Count Aggregation:求總數
        • GET /索引庫名/_search
          {
          "aggs": {
          "度量名稱": {
          "度量運算": {
          "field": "運算字段"
          }
          }
          }
          }
          
          例子:{
          "size": 0,
          "aggs": {
          "popular_brand": {
          "terms": {
          "field": "make"
          },
                  "aggs": {
          "price_avg": {
          "avg": {
          "field": "price"
          }
          }
          }
          }
          }
          }

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 51精品免费视频国产专区| 午夜精品一区二区三区在线观看| 国产三级精品三级| 欧美变态另类zozo| 乱人伦中文字幕成人网站在线| 精品人无码一区二区三区| 中文字幕结果国产精品| 国产又黄又湿又刺激网站| 久久亚洲男人第一AV网站| 欧美高清狂热视频60一70| 午夜亚洲乱码伦小说区69堂 | 在线观看AV永久免费| 福利一区二区在线播放| 日产精品99久久久久久| 99久久er热在这里只有精品99| 99精品视频在线观看婷婷| 巨爆乳中文字幕爆乳区| 亚洲精品无码你懂的| 不卡一区二区国产精品| 久久久国产乱子伦精品| 桃花岛亚洲成在人线AV| 久久精品国产亚洲AV高清热| 免费A级毛片中文字幕| 视频二区中文字幕在线| 日韩欧美群交P内射捆绑| 69天堂人成无码免费视频| 亚洲性无码AV在线欣赏网| 又大又粗又硬放不进去了| 人人人澡人人肉久久精品| 污污污污污污WWW网站免费| 天天影视网色香欲综合网| 国产不卡一区二区在线| 白嫩少妇激情无码| 欧美黑人XXXX性高清版| 亚洲高清WWW色好看美女| 亚洲乱色熟女一区二区三区麻豆 | 成人无码午夜在线观看| 午夜在线观看成人av| 日韩系列精品无码免费不卡| 日韩国产亚洲一区二区三区| 国产性色的免费视频网站|