0

couchbase와 신축성있는 검색 플러그인을 통합하는 데있어 설계상의 문제입니다. 저는 이전 제품에서 멀티 테넌시와 함께 couchbase를 사용했으며 couchbase 블로그 Single Couchbase Bucket for All Tenants에서 찾은 첫 번째 제안을 따랐습니다.멀티 테넌시가 포함 된 Couchbase Elastic Search 플러그인

이제 우리는 couchbase 탄성 검색 플러그인을 사용하여 couchbase 데이터에서 탄성 검색 기능을 활용하는 방법에 대해 연구하고 있습니다. couchbase 신축성 검색 플러그인 문서 (설치 및 설정)를 통해 이동하면 couchbase bucket을 하나만 elasticsearch index에 매핑 할 수 있다는 것을 깨달았습니다. 해당 설명서는 여기 Elasticsearch plugin configuration 및 여기 Connecting to Cluster에서 찾을 수 있습니다. 이제는 couchbase 버킷과 마찬가지로 모든 문서 (세입자와 관계없이)가 동일한 색인에 상주하게됩니다.

여기 내 질문이 있습니다. 문서가 couchbase에 저장되는 방법에 관계없이, 나는 elasticsearch를 임차인마다 색인화하고 싶습니다. 나는 여전히이 두 시스템 간의 통합에 놀아나 기 시작한 상태이지만 테넌트마다 별도의 검색 색인을 가지고 있다고 가정하고 있습니다. (그리고 각기 다른 유형의 소유가있는 각 임차인/색인은 가장 확실합니다.) 1) 검색 성능이 세입자 2) 최소한의 데이터 세트를 가질 수있는 특정 테넌트에 대한 특정 검색 쿼리의 성능은 동일한 인덱스에 대해 다른 일부 테넌트에 대해 거대한 데이터 세트를 가짐으로써 영향을받지 않습니다 (데이터 세트 세입자 간 차이가 50 배 이상임)

궁금한 점은 제 관심사가 유효한 것입니다. 모든 입주자가 함께 색인을 생성함으로써 검색 쿼리의 실적에 영향을 줍니까? 그렇다면 누구나 couchbase elastic search 플러그인을 사용하여이를 달성 할 수있는 방법에 대한 해결책이 있습니까?

감사합니다.

답변

1

플러그인을 사용할 때 단일 Couchbase 버킷에서 가져온 데이터를 다른 ElasticSearch 색인으로 분리하는 간단한 방법은 없습니다. 할 수있는 일은 ElasticSearch에서 여러 가지 다른 유형의 텐트를 다른 인덱스와 동일한 인덱스에 보관하는 것입니다. 이는 검색 성능을 향상시키고 CB와 ES간에 텐트 관리를 일관되게 만듭니다. http://docs.couchbase.com/admin/elastic/adv-usage.html

+0

하지만 경우 (이하 "문서 유형을 설정"이라는 섹션으로 이동) : 여기에 설명 된대로

는 전송 플러그인의 종류 선택 기능을 사용하여, CB 다른 ES 유형에 다른 문서를 매핑하려면 당신은이 세입자들 내부에 더 많은 유형이 있습니까? 이 시점에서 조합 유형을 사용해야합니까? 예를 들어, 우리 유형 중 하나는 tenantId_users, tenantId_organizations입니까? 성능에도 영향을 미칩니 까? – shahshi15

+0

게시 한 링크로 놀았지만 더 많은 질문이 제기되었습니다. 문서에서 유형은 기본적으로 yml 파일에 하드 코딩되어 있으며 elasticsearch native apis를 사용하여 동적으로 유형을 만들지 만 새 유형에 따라 couchbase 플러그인을 색인화 할 수있는 방법은 무엇입니까? 나는 실제로 elasticsearch 플러그인을 사용하여 유형을 동적으로 만들 수있는 방법을 찾지 못했습니다. docId 정규식을 기반으로 유형에 문서를 동적으로 할당 할 수 있지만 새 유형은 만들 수 없습니다. 그래도 문제가 해결되지 않습니다. – shahshi15

+1

ID와 유형 모두에 대해 정규식을 기반으로하는 동적 유형을 만드는 기능은 실제로 최근에 dev 브랜치에 커밋되었으며 다음 플러그인 버전에 추가됩니다. 따라서 임시 문서의 동적 하위 유형을 만들 수 있습니다. 또한 처음에 해결하려고하는 쿼리 성능 문제가 실제 성능 문제인지 방금 조기 최적화 문제인지 고려하십시오. –