es 개념2

LEE_DEV_LOG·2022년 2월 6일
0
  1. 색인
    키워드를 찾아보기 쉽도록 정렬/나열한 목록(저장)
  2. 역색인
    키워드를 통해 문서를 찾아내느 방식(불러오기)
  3. 역인덱스 구조를 만들어 저장한다.
    이런 역 인덱스를 데이터가 저장되는 과정에서 만드므로
    데이터를 입력할 때 저장이 아닌 색인한다고 표현한다.

기본적으로 PUT 이라는 명령어를 잘 활용하지 않는 것 같다. POST 로도 _update라는 것을 통해서 수정이 가능하고 POST 로도 수정이 가능하니...

기본적으로 PUT(입력) 를 사용하여 doc 을 생성만 하여도 자동으로 index가 생성이된다.

POST 는 수정이었다.... 그런데 POST 도 초기 입력에 사용을 할 수가 있다. PUT 명령어를 사용하여 입력을 할 때에 차이는 거의 없지만 POST 는 아이디를 자동적으로 생성하여 준다는 것 같다.

// 아이디를 입력하지 않고 저장하는데 아이디가 자동적으로 생성되어 저장됨

POST my_index/_doc
{
  "name":"Jongmin Kim",
  "message":"안녕하세요 Elasticsearch"
}

// 기존 doc 을 날리고 저장 된다. 데이터를 덮어쓰지 않고 필드를 변경하는 방법은 아래 POST 명령어를 사용한 방법을 참고

PUT my_index/_doc/{id}
{
  "age": 40
}

// 데이터를 변경한다. (기존 데이터를 지우지 않고 변경/추가함)

POST my_index/_update/{id}
{
  "doc" :{
    "age": 40
   }
}
PUT my_index/_doc/1
{
  "name":"Jongmin Kim",
  "message":"안녕하세요 Elasticsearch"
}
GET my_index/_doc/1

DELETE my_index/_doc/1

DELETE my_index

// value 랑 three 랑 같이 있는 것을 찾음
GET test/_search?q=field:three AND field:value

GET test/_search
GET test/_doc/1
GET test/_doc/2

// index, create 가 모두 입력의 의미

POST _bulk
{"index":{"_index":"test", "_id":"1"}}
{"field":"value one"}
{"index":{"_index":"test", "_id":"2"}}
{"field":"value two"}
{"delete":{"_index":"test", "_id":"2"}}
{"create":{"_index":"test", "_id":"3"}}
{"field":"value three"}
{"update":{"_index":"test", "_id":"1"}}
{"doc":{"field":"value two"}}

검색의 방법에는 URI 검색과 데이터 바디 검색 방법이 있다.
데이터 바디 검색이 queryDSL 이 아닐까 싶은데

queryDSL
Nosql 에 적재된 document 들을 rdbms 에서 우리가 자주
썻던것처럼 query 질의를 할 때 사용되는 기능.

URI 검색 방법
GET test/_search?q=two
test 인덱스에서 doc 들 중에서 two 라는 텍스트를 포함하는 doc들을 조회 한다.
q 파라미터를 줘서 간단하게 검색이 가능하다
q=field:three and field:four 이런식으로 사용이 가능하다

그런데 우리는 데이터 바디 검색방법을 자주 사용하게 된다.

querydsl 에 대한 설명은 다음 편에서
이어서 작성하기로...

profile
LEE_DEV_LOG

0개의 댓글