Elasticsearch로 빠른 시작 - 일괄 처리 추가, 삭제, 수정 및 확인

머리말

        회사 동료의 사직으로 인해 원래 그가 담당했던 프로젝트를 내가 인수해야 합니다. 여기에는 초등 및 중등 학교 문제 은행과 수천만 개의 데이터가 포함된 질문 은행 검색이 포함됩니다. 함수의 이 부분의 정상적인 반복이 미래에 효율적으로 완료될 수 있도록 보장하기 위해. Elasticsearch의 기본 사용법을 배우기 시작해야 했고, 이것이 이 학습 기록으로 이어졌습니다. 이 도구를 모르는 학생들도 이 기사를 통해 도움을 받을 수 있습니다.

        읽기 전에 확인하십시오:

  1. 유닉스/리눅스 명령줄이 무엇인지 이해합니다.
  2. 네트워크 요청 및 tcp/udp 관련 지식이 무엇인지 이해하고 있으며 이러한 네트워크 요청을 모든 프로그래밍 언어로 구현했습니다.
  3. curl명령 사용을 이해합니다 .
  4. REST 및 RESTful을 이해 get하고 요청하고 이해합니다. 링크된 기사 " RESTFUL이란 무엇입니까?"를put 참조할 수 있습니다. REST의 요청 방법은 무엇이며 차이점은 무엇입니까? ".

텍스트

환경 준비

JDK8

        yum, apt 및 brew와 같은 패키지 관리 도구도 소스 코드를 통해 다운로드, 컴파일 및 설치하거나 deb 및 .exe를 통해 설치할 수 있습니다.

ES6 다운로드 및 실행

        나는 맥이므로 직접 다운로드하려면 brew를 사용하십시오.

brew install elasticsearch

        다운로드가 완료되면 명령어를 직접 입력하여 시작합니다.

elasticsearch

명령 사용

건강 상태 확인

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

        실행 결과는 다음과 같습니다.

여기에 이미지 설명 삽입

노드 목록 보기

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

여기에 이미지 설명 삽입

색인 목록 보기

        다음 명령을 실행합니다.

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

        인덱스가 없으면 다음과 같이 하나의 테이블 헤더만 있게 됩니다.

여기에 이미지 설명 삽입

        인덱스가 있으면 다음과 같은 효과가 있습니다.

여기에 이미지 설명 삽입

인덱스 생성

        "test_index"라는 인덱스를 만들려면 다음 요청을 시작할 수 있습니다.

curl -XPUT 'localhost:9200/test_index&pretty'

        그러면 위의 "인덱스 목록 보기"를 통해 확인 및 확인하실 수 있습니다. 실행 효과는 다음과 같습니다.
여기에 이미지 설명 삽입

설명서 문서 추가

        위에서 만든 index "test_index"에 id = 1문서를 삽입하면 내용은 다음과 같습니다.

{
    
    
	"content": "Test Data By Funco~~~"
}

        그런 다음 명령줄은 다음과 같습니다.

curl -XPUT 'localhost:9200/test_index/doc/1?pretty&pretty' -H 'Content-Type: application/json' -d '{"content": "Test Data By Funco~~~"}'

        그러면 실행 효과는 다음과 같습니다.

여기에 이미지 설명 삽입

알아채다

  1. 존재하지 않는 색인에 문서를 추가하면 색인이 생성되고 문서가 성공적으로 추가됩니다.
  2. 동일한 id로 명령이 반복적으로 실행되면 이전 doc는 단순히 새 doc로 대체됩니다.
  3. id는 필수가 아니며 id가 지정되지 않은 경우 es는 임의로 id를 인덱스로 생성합니다. id 지정 여부와 관계없이 위 실행 다이어그램의 필드와 같이 반환된 결과에서 id를 얻을 수 있습니다 _id.

문서 받기

        여기에 추가된 문서를 가져옵니다 id = 1.

curl -XGET 'localhost:9200/test_index/doc/1?pretty&pretty'

        실행 효과는 다음과 같습니다.

여기에 이미지 설명 삽입

인덱스 삭제

        위에서 문서를 추가할 때 선택한 인덱스가 없으면 해당 인덱스가 추가된다고 언급했습니다. 이제 실수로 추가된 인덱스를 제거하려면 어떻게 해야 할까요? 다음 명령을 실행할 수 있습니다. 예를 들어 이제 customer이라는 인덱스를 삭제하려고 합니다.

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

        실행 효과는 다음과 같으며, 실행 성공 후 인덱스 목록을 조회하는 위의 명령어를 통해 해당 인덱스가 더 이상 목록에 존재하지 않는 것을 확인할 수 있습니다.

여기에 이미지 설명 삽입

문서 수정

        바로 지금 "문서 추가" 섹션에서 새 문서가 단순히 이전 문서를 대체한다고 언급되어 있지만, 이때 컨텐츠를 대체하는 대신 컨텐츠의 일부만 수정하려면 어떻게 해야 합니까?
        이제 우리가 인덱스에 있다고 가정하면 test_index다음과 같이 id = 1인 문서가 있습니다.

여기에 이미지 설명 삽입

curl -XPOST 'localhost:9200/test_index/doc/1/_update?pretty&pretty' -H 'Content-Type: application/json' -d '{"doc":{"author": "funco"}}'

        실행 효과는 다음과 같습니다. POST를 사용하여 제출하고 의 -d필드 doc는 수정 전 문서, data수정 중에 제출된 매개변수 및 수정된 문서를 비교하는 데 주의하십시오. 이해하실 수 있습니다.

여기에 이미지 설명 삽입

문서 삭제

        이것에 대해서는 할 말이 없습니다.REST DELETE 작업을 제출하고 인덱스 아래에 id가 가리키는 문서를 지정하십시오. id = 1예를 들어 test_index에서 문서를 삭제하고 싶습니다 . 다음 명령을 실행할 수 있습니다.

curl -XDELETE 'localhost:9200/test_index/doc/1?pretty&pretty'

        실행 효과는 다음과 같습니다. found삭제 후 문서를 다시 가져오고 반환된 결과의 필드가 임을 알 수 있습니다 false.

여기에 이미지 설명 삽입

일괄 처리

일괄 삽입 문서

curl -XPOST 'localhost:9200/test_index/doc/_bulk?pretty&pretty' -H 'Content-Type: application/json' -d '
{"index":{"_id": 2}}
{"content":"test content2"}
{"index":{"_id": 3}}
{"content":"test content3"}
'

실행 효과는 다음과 같습니다.
여기에 이미지 설명 삽입

일괄 삭제 및 수정

        다음과 같은 경우 데이터를 삭제하고 수정하는 방법과 하나의 요청으로 다른 작업을 수행하는 방법을 배울 수 있습니다.

id = 2먼저, 실행하기 전에 및 기록 id = 3        존재를 확인하십시오 .

여기에 이미지 설명 삽입

        그런 다음 다음 명령을 실행합니다.

 curl -XPOST 'localhost:9200/test_index/doc/_bulk?pretty&pretty' -H 'Content-Type: application/json' -d '
{"update":{"_id": 2}}
{"doc":{"author":"funco"}}
{"delete":{"_id": 3}}
'

        실행 효과는 다음과 같습니다.

여기에 이미지 설명 삽입

        마지막으로 다시 확인합니다. 성공적으로 실행되었음을 확인할 수 있습니다.

여기에 이미지 설명 삽입

찾다

        이전 섹션 "일괄 삭제 및 수정"을 예로 들어 작업 실행 전후에 id = 2 및 id = 3인 문서에 대해 두 개의 요청만 실행할 수 있습니다. 모든 문서를 가져오려면 어떻게 해야 합니까 /<index>/doc/<id>? 현재 모든 문서를 GET가져오고 싶다고 가정하면 다음 명령을 실행할 수 있습니다.test_index

curl -XGET 'localhost:9200/test_index/_search?q=*&pretty&pretty'

여기에 이미지 설명 삽입

검색 결과가 필드별로 오름차순으로 정렬되도록 get매개변수를         추가할 수도 있습니다 .sort=_id:asc_id

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

여기에 이미지 설명 삽입

        이전 요청에서처럼 데이터에 매개변수를 넣을 수도 있다는 점에 유의해야 합니다 . 효과는 이전 예제와 동일합니다. 이는 코드를 사용하여 요청을 시작할 때 일관된 처리 스타일을 유지하는 데 유용합니다.

curl -XGET 'localhost:9200/test_index/_search?pretty&pretty' -H 'Content-Type: application/json' -d '
{
"query": {"match_all":{}},
"sort": {"_id": "asc"}
}
'

        기본 검색 결과는 10입니다. 더 많은 데이터를 검색하려면 매개 변수를 통해 지정해야 합니다 size. 검색과 관련하여 다른 블로그를 만들어 공유하겠습니다.

추천

출처blog.csdn.net/qq_23937195/article/details/98059666