ElasticSearch的增、刪、改、查操作

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/humanity11/article/details/78078480

本文分成兩部分,一部分介紹在elasticsearch中索引的創建,第二部分介紹elasticsearch的基本操作.

(1)首先我們創建一個index:

1.在elasticsearch的webui界面中有一個add index中可以創建索引,填入所以的分片數和備份數即可。

索引創建好了,接下來就是創建類別和文檔,如下我創建一個person表,包含name,age,示例如:

{
	"man":{
		"properties":{
			"name":{
				"type":"text"
				},
			"age":{
				"type":"Integer"
				}
			}
		}
}
然後可以用“put”預防將上述的json提交至master節點地址:127.0.0.1/person/man

2.當然我們也可以基於put語法直接創建索引類別文檔,同樣基於“put”的語法,在提交的json中創建索引。

{
 "setting":{
 	"number_of_shards":3,//分片數
 	"number_of_replicas:":1//備份數
 },
 "mappings":{
"properties":{
 	"man":{
 		"name":{
 			"type":"text"
 		},
 		
	"age":{
		"type":"integer"
	}
 }
}
}
}
訪問master節點地址 :127.0.0.1/person即可。

(2)數據的插入:

(1)基於”post“語法,訪問127.0.0.1/person/man,提交一條記錄至創建的person表中:

{
	"name":"網絡",
	"age":30
}



插入數據後,數據表中會自動生成一個id,如果我們想自己生成id該如何做?那也很方便訪問127.0.0.1/person/man/1,以put語法提交json就ok了。

{
"name":"網絡2",
"age":34
}
這裏的id=1,即指定文檔1
(2)數據的刪除比較簡單,以delete方式訪問索引、類別、文檔即可

(3)查詢和更新的查找原理類似,主要在一些語法方面的區別,下面將列一些常見的操作。

group by聚合
{
  "aggs": {
    "group_by_name": {
      "terms": {
        "field": "country"
      }
    }
  }
}//count 字段爲keywords
查詢年齡字段爲30的數據並以倒序排列
{
  "query": {
    "match": {
      "age": 30
    }
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}//date不是text 類型
{
  "query": {
    "match": {
      "name": "網絡"
    }
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}//模糊匹配


{
  "query": {
    "match_phrase": {
      "name": "網絡"
    }
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}//精確匹配

{
  "query": {
    "multi_match": {
      "query": "5",
      "fields": [
        "name"
      ]
    }
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}//多個條件或查詢,查詢字段類型爲text


{
  "query": {
    "query_string": {
      "query": "(5 AND he)OR 網絡"
    }
,"fields": [
        "name"
      ]
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}//語句查詢


結構化語句的查詢
{
  "query": {
    "term": {
      "age": 30
    }
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}
{
  "query": {
    "range": {
      "age": {
        "gt": "2",
        "lte": "42"
      }
    }
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}

過濾器
{
  "query": {
    "bool": {
      "filter": {
        "term": {
          "name": "5"
        }
      }
    }
  }
}

固定分數查詢
{
  "query": {
    "match": {
      "name": "5"
    }
  }
}






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章