데이터의 검색 및 로그 분석, cache 등에 사용하는 elasticsearch를 알아봅니다. 먼저 아래는 조회, 생성, 삭제 등의 명령어를 우선 알아보고 검색 쿼리에 사용하는 몇 가지 예제들도 함께 알아보겠습니다.



# elasticsearch를 사용한 조회, 수정, 삭제elasticsearch는 index(인덱스), type, id를 사용하여 필요한 Document를 생성합니다. 이때 REST 방식의 API로 명령할 수 있으며 아래 예제는 rest api를 curl을 사용하는 방법으로 알아보겠습니다.


! 인덱스 조회 하기특정 인덱스가 존재하는지 여부를 수행합니다.

- Method : GET
- localhost:9200/indexName

curl -XGET localhost:9200/indexName


@ Pretty 옵션 사용하기
parameter에 추가로 pretty를 옵션으로 사용할 수 있는데 이 경우 프로퍼티 값을 각각의 라인으로 정리하여 보여주게됩니다. 아래는 문법입니다.
curl -XGET localhost:9200/indexName?pretty

실행 결과는 미사용 그리고 사용 후는 아래와 같습니다.
{ 'test': '123' }

아래처럼 보여지게됩니다.
{
 'test': '123'
}



! 인덱스 생성하기새로운 인덱스를 생성하는 방법입니다. 메소드를 PUT으로 변경하면 됩니다.
- Method : PUT
- localhost:9200/indexName

curl -XPUT localhost:9200/indexName



! 인덱스 삭제하기존재하는 인덱스를 삭제합니다.
- Method : DELETE
- localhost:9200/indexName

curl -XDELETE localhost:9200/indexName



! 도큐멘트 생성하기엘라스틱서치에서는 row에 해당하는 document를 생성할 수 있습니다. 이 경우 POST를 사용합니다.
- Method : POST
curl -XPOST localhost:9200/indexName/documentName/1/ -d '{ "id": 123 }'

만약 index가 없는 경우 에러를 출력함
{
    "error": "Incorrect HTTP method for uri [/question/title/] and method [PUT], allowed: [POST]",
    "status": 405
}



# elasticsearch 검색 방법 및 예제보기
elasticsearch를 사용하여 검색하는 다양한 방법과 예제를 알아봅니다.

모든 필드에서 일치하는 텍스트를 찾는 경우 
/_search

GET /question/ask/_search?q=406

특정 필드를 지정하는 경우
?q=filedName:searchKeyword

멀티 키워드 검색 방법
GET /market/fruit/_search?q=banana