Elastichsearch實踐——基本使用

官網文檔:https://www.elastic.co/guide/cn/elasticsearch/guide/current/getting-started.htmlhtml

 

es中的索引、類型、文檔能夠一一和關係型數據庫中的概念去對應。node

 

在本地部署三個es程序,將會自動水平擴容。任何一個節點掛掉,在其餘節點都有備份數據保證分片數據的完整性。web

 

主分片的數目在索引建立時就已經肯定了下來。通常咱們給一個索引分配5個主分片,一個副本。但當你擁有越多的副本分片時,也將擁有越高的吞吐量(前提是增長機器)。數據庫

 

REST設置命令緩存

/index/_settings // 若是對全部索引,用 /_all/_settings
{"number_of_replicas":1}    // 副本數
{"refresh_interval": "10s"}    // 刷新時間

 

網頁加載性能上報,es近實時搜索優化實踐:(反覆調研測試了一個禮拜才得出的精闢結論)

node接收端緩存800條數據,統一bulk到es;elasticsearch

es全局設置{ refresh_interval: 10s },提高內存刷新時間。ide

 

聚合

按pageId作聚合(注意在terms裏面設置size!—— 被坑慘過)性能

aggs: {
  mypageId: {
    terms: {
      size: 1000,
      field: 'pageId.keyword'
    }
  }
}
{
  "size": 0,
  "aggs": {
    "pageIds": {
      "terms": {
        "size": 100,
        "field": "pageId.keyword"
      }
    }
  }
}

 

查詢指紋用戶匹配測試

http://10.10.19.29:9200/

finger-query-2019.03.17/_search

{"size":1,"aggs":{"users":{"terms":{"size":100,"field":"matched"}}}}

 

查詢頁面聚合優化

{
  "size": 100,
  "aggs": {
    "pages": {
      "terms": {
        "size": 100,
        "field": "pageId"
      }
    }
  }
}

 

精確查詢

{
  "query": {
    "bool": {
      "filter": {
        "term": {
          "pageId": "planting_v2_2_1"
        }
      }
    }
  }
}

 

去重

{
  "query": {
    "match_all": {}
  },
  "collapse": {
    "field": "pageId.keyword"
  }
}

 

按類型統計個數

{
  "size": 0,
  "aggs": {
    "group_by_RESOURCE_FORMAT": {
      "terms": {
        "field": "iswebp.keyword"
      }
    }
  }
}
相關文章
相關標籤/搜索