카우치베이스와 전체 텍스트 검색: Elasticsearch를 위한 Couchbase 전송

업데이트 2013년 10월 9일

Couchbase 2.2.0 및 Elastic Search 0.90.5와 함께 작동하도록 Elastic Search용 Couchbase 전송이 업데이트되었습니다. 아래의 세부 단계는 새로운 버전 번호를 반영하도록 업데이트되었습니다.

이제 다음 콘텐츠 앱에서 사용 가능  

참조 http://www.couchbase.com/blog/announcing-release-couchbase-plug-elasticsearch 


Couchbase Server 2.0은 분산 맵 축소 구현을 통해 강력한 인덱싱 및 쿼리 기능을 추가했습니다. 하지만 그 외에도 많은 애플리케이션, 특히 콘텐츠 애플리케이션에는 전체 텍스트 검색 기능도 필요합니다. 오늘 Elastic Search용 Couchbase 전송 플러그인의 개발자 프리뷰를 출시합니다. 이 플러그인은 Couchbase Server 2.0의 일부가 될 새로운 데이터 센터 간 복제 기능을 사용합니다. 이 새로운 전송을 사용하면 Couchbase와 ElasticSearch를 쉽게 시작할 수 있습니다. 이 블로그에서는 몇 분 안에 이 통합을 시작하고 실행하는 방법을 설명합니다.

시작하기

먼저 Couchbase 클러스터가 필요합니다. 여기서는 개발 머신에서 단일 인스턴스를 실행해도 괜찮습니다.  플랫폼에 적합한 패키지를 다운로드하여 설치하세요. Couchbase Server 2.0.0의 64비트 RPM 패키지를 사용하겠습니다:

?????????$ sudo rpm 카우치베이스 설치서버enterprise_2.2.0_x86_64_openssl098.rpm

설치 마법사를 진행하는 동안 모든 기본 설정을 사용할 수 있습니다. 하지만 아래 예시를 따라 '맥주 샘플' 샘플 버킷을 선택해야 합니다.

이제 ElasticSearch를 설치할 준비가 되었습니다. 현재 버전의 플러그인은 다음에서 작동합니다. ElasticSearch 버전 0.90.5. 이 파일을 다운로드하고 설치 파일의 압축을 풉니다.

$ curl -sLO
http://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.5.tar.gz
$ 타르 zxvf elasticsearch-0.90.5.tar.gz

이제 ElasticSearch 코어가 생겼으니 몇 가지 플러그인을 추가해 보겠습니다.

첫 번째는 "head"라고 합니다. 이것은 ElasticSearch에 기본 웹 UI를 제공하여 무슨 일이 일어나고 있는지 더 쉽게 확인할 수 있도록 해줍니다. 설치는 간단합니다:

$ cd elasticsearch-0.90.5
$ 빈/플러그인 -설치 mobz/elasticsearch-head
-> mobz/elasticsearch-head 설치...
https://github.com/mobz/elasticsearch-head/zipball/master... 시도 중(사이트 플러그인 가정)
..................................... 다운로드 완료
사이트 플러그인으로 식별되어 _사이트 구조로 이동 중 ...
설치된 헤드

이제 Couchbase 플러그인을 설치할 준비가 되었습니다. 설치는 다른 플러그인과 마찬가지로 간단합니다.

$ 빈/플러그인 -설치 전송 카우치베이스 -url http://packages.couchbase.com.s3.amazonaws.com/releases/elastic-search-adapter/1.2.0/elasticsearch-transport-couchbase-1.2.0.zip
-> 전송 카우치베이스 설치...
시도 중 http://packages.couchbase.com.s3.amazonaws.com/releases/elastic-search-adapter/1.2.0/elasticsearch-transport-couchbase-1.2.0.zip...
다운로드 ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
설치된 전송 카우치베이스

이제 플러그인이 설치되었으므로 Couchbase 전송의 비밀번호를 설정해야 합니다.

$ echo "couchbase.password: password" >> config/elasticsearch.yml
이렇게 하면 비밀번호가 리터럴 문자열 "password"로 설정됩니다. 사용자 이름은 기본값이 "관리자"이지만 "couchbase.username"에서 지정할 수 있습니다.
필요한 모든 플러그인이 설치되었으니 이제 ElasticSearch를 시작해 보겠습니다.
$ 빈/엘라스틱서치

이렇게 하면 ElasticSearch가 시작되고 백그라운드로 전환됩니다.

ElasticSearch 구성

이제 플러그인이 설치되었으므로 Couchbase로 작업할 때 좋은 기본값을 설정하는 인덱스 템플릿을 설치해야 합니다. 이러한 모든 설정은 사용자 고유의 템플릿으로 재정의하거나 인덱스별로 업데이트할 수 있습니다.

$ curl -XPUT http://localhost:9200/_template/couchbase -d @plugins/transport-couchbase/couchbase_template.json
{"확인":true,"승인됨":true}

마지막으로, 검색하려는 각 Couchbase 버킷에 대해 ElasticSearch에서 해당 인덱스를 생성해야 합니다.

$ curl -XPUT http://localhost:9200/beer-sample
{"확인":true,"승인됨":true}

이제 Couchbase 측을 구성할 준비가 되었습니다.

카우치베이스 서버 구성

ElasticSearch용 Couchbase 플러그인은 Couchbase Server 2.0에 도입된 XDCR(데이터센터 간 복제) 기능을 활용하여 작동합니다. 첫 번째 단계는 UI에서 복제 탭으로 이동하는 것입니다. 이제 클러스터 참조 만들기 버튼을 클릭합니다. 이 클러스터의 이름을 지정합니다. ElasticSearch 를 클릭하고 주소를 가리킵니다. 127.0.0.1:9091 (이 플러그인에서 사용하는 기본 포트)를 입력합니다. 사용자 아이디 필드는 관리자이고 비밀번호 필드는 이전 섹션에서 구성한 값과 일치해야 합니다.

마지막으로 복제를 시작하려면 복제 생성 버튼을 클릭합니다. 버튼을 선택합니다. 맥주 샘플 버킷, 원격 클러스터 ElasticSearch 를 클릭하고 원격 버킷의 이름을 입력합니다. 맥주 샘플.

를 누르면 복제 버튼을 누르면 데이터 전송이 시작됩니다.

통합 완료

다음을 방문하여 이전 진행 상황을 확인해 보겠습니다. http://127.0.0.1:9200/_plugin/head/

문서 수는 ElasticSearch에서 증가하며 궁극적으로 Couchbase에서 보는 문서 수보다 더 많아질 것입니다. 이것은 정상이며 복제 검사점 문서도 저장하고 있기 때문에 발생하는 현상입니다. 이제 데이터가 제대로 색인되었는지 확인하기 위해 간단한 검색을 실행해 보겠습니다.

브라우저에서 다음 URL을 열어 제가 가장 좋아하는 맥주 중 하나를 검색해 보겠습니다: http://localhost:9200/beer-sample/_search?q=duchesse

아래와 같은 JSON 출력이 표시됩니다:

검색이 정확히 하나의 문서와 일치하는 것을 볼 수 있습니다. 하지만 소스 섹션에는 맥주 문서의 내용이 표시되지 않습니다. 이는 의도적으로 인덱스 템플릿을 설치할 때 문서의 전체 본문 저장을 비활성화했기 때문입니다. 그 이유는 간단합니다. 이미 Couchbase에서 문서에 엄청나게 빠르게 액세스할 수 있기 때문입니다. Couchbase UI로 돌아가서 검색이 반환한 문서를 살펴보겠습니다.

Couchbase UI에서 데이터 버킷 탭으로 이동한 다음 맥주 샘플 버킷 옆에 있는 문서 버튼을 클릭합니다. 문서 ID 필드에 검색에서 반환된 ID인 110fa6d6b2를 붙여넣습니다.

성공! 우리가 찾던 맥주입니다.

다음 단계

이 시점에서 Couchbase 클러스터가 ElasticSearch 클러스터에 데이터를 지속적으로 복제하고 있습니다. 아주 기본적인 ElasticSearch 쿼리만 보여드렸습니다. 훨씬 더 복잡한 쿼리도 가능합니다.

자세한 내용을 확인하세요:

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Marty Schoch, 수석 소프트웨어 엔지니어, Couchbase

Marty Schoch는 Couchbase의 선임 소프트웨어 엔지니어입니다. Marty는 Elasticsearch용 Couchbase 플러그인과 N1QL 초기 버전의 저자입니다. 또한 Couchbase Go SDK의 핵심 기여자이기도 하며, Go를 사용해 여러 실험적인 Couchbase Labs 프로젝트에 참여했습니다. 현재 Marty는 Couchbase의 향후 버전을 위한 새로운 인덱스 기술을 연구하고 있습니다. 그는 메릴랜드 대학교 칼리지 파크에서 컴퓨터 과학 학사 학위를 받았습니다.

댓글 하나

  1. "UI 및 클릭 시나리오"없이 CLI 또는 API를 사용하여 CB + ES 설정의 자동 프로비저닝을 얻기 위해 이 구성을 수행할 수 있나요?

    1. 예, 이 모든 작업은 \"UI 및 클릭\" 없이도 수행할 수 있다고 생각합니다. 초기 Couchbase 설정에 대해서는 잘 모르겠으니 Couchbase 포럼에서 문의하시기 바랍니다: https://forums.couchbase.com/

      그 이후에는 여기에 설명된 couchbase-cli 명령을 사용하여 Elasticsearch용 XDCR 설정을 수행할 수 있습니다:

      http://docs.couchbase.com/admi

      xdcr-setup 및 xdcr-replicate 명령을 참조하세요.

      모든 Elasticsearch 작업은 REST API를 통해 수행할 수 있으며, 자세한 내용은 해당 설명서를 참조해야 합니다.

      1. 답변 감사합니다, 저도 API를 찾았습니다. http://docs.couchbase.com/admi

  2. [커넥터 페이지에서 최신 버전의 전체 텍스트 검색 플러그인을 다운로드하고, [...] 설치 및 사용 방법에 대한 자세한 단계는 마티 슬로흐의 업데이트된 블로그 게시물을 읽어보세요.]

  3. [...] 애플리케이션의 전체 텍스트 검색 요구 사항을 처리하기 위해 ElasticSearch가 선택되었습니다. ElasticSearch는 풍부한 쿼리 기능과 뛰어난 클러스터링 기능을 결합하여 Couchbase와 매우 잘 어울립니다. Couchbase Server와 ElasticSearch 간의 통합은 Couchbase Transport 플러그인을 통해 제공되었습니다. 이 전송은 Couchbase Server 2.0의 데이터 센터 간 복제 기능을 사용하여 모든 문서 변형을 ElasticSearch 인덱스로 안정적으로 전송합니다(여기에서 자세히 알아보기). [...]

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.