ElasticSearch 초식
6521 단어 Springbootelasticsearch
기본 작업
# , 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 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.