ElasticSearch 초식

elasticsearch 홈페이지:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

기본 작업

#  ,  customer
curl -XPUT 'localhost:9200/customer?pretty'

#   customer  id 1  document,
curl -XPUT 'localhost:9200/customer/_doc/1?pretty' -H 'Content-Type: application/json' -d'
{
  "name": "John Doe"
}
'

#  document id, ,es id. :
curl -XPOST 'localhost:9200/customer/_doc?pretty&pretty' -H 'Content-Type: application/json' -d'
{
  "name": "Jane Doe"
}
'


#     customer  id 1  docment
curl -XGET 'localhost:9200/customer/_doc/1?pretty'

#   customer
curl -XDELETE 'localhost:9200/customer?pretty'

#  
curl -XGET 'localhost:9200/_cat/indices?v&pretty'

update document


1. 인덱스가customerid가 1인 문서 업데이트


curl -XPOST 'localhost:9200/customer/_doc/1/_update?pretty&pretty' -H 'Content-Type: application/json' -d'
{
  "doc": { "name": "Jane Doe" }
}
'

2. document를 업데이트하고 필드(filed)를age로 추가


curl -XPOST 'localhost:9200/customer/_doc/1/_update?pretty&pretty' -H 'Content-Type: application/json' -d'
{
  "doc": { "name": "Jane Doe", "age": 20 }
}
'

3. 스크립트를 사용하여 문서 업데이트

curl -XPOST 'localhost:9200/customer/_doc/1/_update?pretty&pretty' -H 'Content-Type: application/json' -d'
{
  "script" : "ctx._source.age += 5"
}
'

그 중에서 ctx._source 현재 업데이트된document 대상을 대표합니다.

Batch Processing(배치 작업)


elactissearch는 일괄 처리 작업을 위한 _bulk API를 제공합니다.

1. id가 1과 2인 문서를 대량으로 추가합니다.

curl -XPOST 'localhost:9200/customer/_doc/_bulk?pretty&pretty' -H 'Content-Type: application/json' -d'
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }
'

id를 1로 업데이트하고 id를 2로 삭제하는 일괄 처리 작업입니다.

curl -XPOST 'localhost:9200/customer/_doc/_bulk?pretty&pretty' -H 'Content-Type: application/json' -d'
{"update":{"_id":"1"}}
{"doc": { "name": "John Doe becomes Jane Doe" } }
{"delete":{"_id":"2"}}
'


검색 API(검색 API)


우리는 es에서 검색하는 두 가지 방법이 있다.
  • REST request URI
  • REST request body
  • REST request body 표현 형식이 더욱 풍부한 JSON 형식의 데이터 검색을 허용합니다.그래서 통상적으로 말하자면, 우리는 모두 두 번째 방법을 채택한다.
    예:
    편의를 위해 우리는 홈페이지에 있는 은행 데이터를 사용하여 검색했다.우선 우리는 우리가 검색한 데이터를 가져와야 한다.참조:https://www.elastic.co/guide/en/elasticsearch/reference/current/_the_search_api.html
    이어서 우리는 우리가 막 가져온 은행 데이터에 대해 검색할 수 있다.

    1.REST request URI

    curl -XGET 'localhost:9200/bank/_search?q=*&sort=account_number:asc&pretty&pretty'
    
    

    2.REST request body

    curl -XPOST 'localhost:9200/bank/_search?pretty' -H 'Content-Type: application/json' -d'
    {
      "query": { "match_all": {} },
      "sort": [
        { "account_number": "asc" }
      ]
    }
    '
    

    위의 두 가지 방식은 효과가 같다.

    springboot에서 jest 연결을 사용하여elasticsearch를 조작합니다


    jest 홈페이지 참고:https://github.com/searchbox-io/Jest/tree/master/jest

    좋은 웹페이지 즐겨찾기