전체 텍스트 검색

사용 사례별 전체 텍스트 검색 색인 모범 사례

소개

전체 텍스트 검색(FTS) 색인 생성은 일반적으로 검색에 익숙하지 않은 사람들에게는 어려울 수 있습니다. 이 게시물에서는 몇 가지 일반적인 검색 사용 사례를 살펴보고 Couchbase FTS 색인 모범 사례에 따라 적절한 색인을 만드는 과정을 살펴봅니다. 

사용 사례

다음과 같은 일반적인 검색 사용 사례를 살펴봅니다: 

  • 간단한 검색 
  • 필드 독립 검색
  • 가장 가까운 이웃 찾기
  • 항상 변경되는 모델로 문서 검색하기

여행 샘플 데이터 모델

이 문서에서는 이 문서 전체에서 설치 가능한 여행 샘플 데이터 세트 를 추가할 수 있습니다. 여행 샘플 버킷에는 항공사, 노선, 공항, 랜드마크, 호텔 등 여러 가지 문서 유형이 있습니다. 각 문서 유형에 대한 문서 모델에는 다음이 포함됩니다:

  • 기본 키 역할을 하는 키
  • 문서를 식별하는 ID 필드
  • 문서의 종류를 식별하는 유형 필드입니다.

 

다음 그림은 여행 샘플 버킷에 있는 여러 종류의 문서 간의 관계를 보여줍니다. 각 문서에 있는 기본 키, ID 및 유형 필드와 각 문서 유형의 대표 필드 몇 개가 표시되어 있습니다. (랜드마크 문서는 사진에 표시되지 않습니다.)

 

그림 0: 여행 샘플 데이터 모델의 문서

 

사용 사례 예시

간편 검색

사용 사례 요약: 사용자가 호텔 설명 필드에 키워드를 검색하여 호텔을 찾고 일치하는 호텔 목록을 확인할 수 있습니다. 

인덱스 생성 단계: 

  1. 전체 텍스트 검색 UI에서 "색인 추가".
  2. 인덱스 이름(예: "hotel_desc")을 지정하고 여행 샘플 버킷을 선택합니다. 
  3. 여행 샘플 버킷의 각 문서에는 문서의 유형을 나타내는 "type" 필드가 있으므로 "JSON 유형 필드"를 "type"으로 설정해 두세요.
  4. 유형 매핑 아래에서:  
    1. "+ 유형 매핑 추가'를 입력하고 모든 호텔 문서를 검색해야 하므로 유형 이름으로 '호텔'을 지정합니다.  
    2. 사용 가능한 분석기 목록은 유형 이름 필드 오른쪽에 있는 풀다운 메뉴를 통해 액세스할 수 있습니다. 이 사용 사례의 경우, "상속"을 선택한 상태로 두십시오. 유형 매핑이 인덱스에서 기본 분석기를 상속하도록 합니다.
    3. 호텔 설명 필드만 검색해야 하므로 "지정된 필드만 색인화".  이 옵션을 선택하면 문서에서 사용자가 지정한 필드만 인덱스에 포함됩니다. 호텔 유형 매핑(매핑은 동적이지 않습니다.로 설정하여 모든 필드를 인덱싱할 수 있는 것으로 간주합니다.). 
    4. 확인을 클릭합니다.  
    5. 호텔 유형 매핑이 있는 행 위에 마우스를 올려놓고 + 버튼을 클릭한 다음 "하위 필드 삽입".  이렇게 하면 설명 필드를 인덱스에 개별적으로 포함할 수 있습니다. 다음을 지정합니다: 
      1. 필드를 클릭합니다: 색인할 필드의 이름인 '설명'을 입력합니다.
      2. 유형으로 설정합니다: 설명 필드에 대한 텍스트로 설정합니다.
      3. 로 검색할 수 있습니다: 현재 사용 사례의 필드 이름과 동일하게 유지합니다. 대체 필드 이름을 나타내는 데 사용할 수 있습니다. 
      4. 분석기를 사용합니다: 유형 매핑에서 수행한 것과 같습니다, 이 사용 사례의 경우 "상속"을 선택한 상태로 두십시오. 유형 매핑이 기본 분석기를 상속하도록 설정합니다.
      5. 색인 확인란을 선택합니다: 필드가 색인에 포함되도록 이 확인란을 선택된 상태로 둡니다.  이 확인란을 선택 취소하면 색인에서 필드가 명시적으로 제거됩니다.
      6. 저장 확인란을 선택합니다: 이 설정은 검색에서 반환된 값에 필드 콘텐츠를 포함하고 결과에서 일치하는 표현식을 강조 표시할 수 있지만 인덱스의 크기와 빌드 시간이 늘어납니다. 이 사용 사례의 결과를 강조 표시할 필요가 없으므로 이 옵션을 선택하지 않은 상태로 둡니다. 
      7. "_모든 필드에 포함" 확인란을 선택합니다: 선택 취소 사용 사례는 설명 필드를 구체적으로 검색하는 것이기 때문입니다. 
      8. "용어 벡터 포함" 확인란을 선택합니다: 특정 종류의 기능(예: 강조 표시, 구문 검색)에는 용어 벡터가 필요하지만 인덱스의 크기와 빌드 시간이 늘어납니다. 선택 취소 사용 사례는 강조 표시가 없는 키워드 검색이므로 이 상자를 선택하지 마세요.  
      9. 클릭 확인.
    6. 마지막으로, 선택 취소 '기본' 유형 매핑 옆의 확인란을 선택합니다.  기본 매핑을 활성화한 상태로 두면 사용자가 적극적으로 유형 매핑을 지정했는지 여부에 관계없이 버킷의 모든 문서가 인덱스에 포함됩니다. 호텔 서류만 필요하며, 이전에 추가한 호텔 유형 매핑에 포함되어 있습니다. 
  5. 나머지 접힌 패널(분석기, 사용자 지정 필터, 날짜/시간 파서 및 고급)은 기본값으로 충분합니다. 
  6. 인덱스 복제본은 클러스터가 n+1 노드에서 검색 서비스를 실행하는 경우 1, 2 또는 3으로 설정할 수 있습니다. 단일 노드 개발 클러스터에서는 기본값인 0을 유지합니다. 
  7. 인덱스 유형의 경우, 새로 생성된 인덱스에는 기본값인 '버전 6.0(Scorch)'이 적합합니다. Scorch는 디스크의 인덱스 크기를 줄이고 인덱싱 및 변경 처리를 위한 향상된 성능을 제공합니다.
  8. 이 시점에서 인덱스 생성 페이지는 그림 1에서 캡처한 마지막 프레임과 같아야 합니다. "색인 만들기'를 클릭하여 프로세스를 완료합니다. 

그림 1 - 인덱스 생성 "hotel_desc"

 

참고: REST API로 이 인덱스를 생성하는 데 사용된 JSON 페이로드는 부록 A의 "Index: hotel_desc"를 참조하세요.  

인덱스에 대해 쿼리를 테스트합니다: 

  1. 전체 텍스트 검색 UI에서 인덱싱 진행률이 100%로 표시될 때까지 기다린 다음 인덱스 이름 "hotel_desc"를 클릭합니다. 
  2. 설명에 '농장' 키워드가 포함된 호텔을 검색하려면 '이 색인 검색...' 텍스트 상자에 '설명: 농장'을 입력한 후 검색을 클릭합니다. 이 검색의 필드 범위 지정은 다음과 같은 이유로 필수입니다. "_모든 필드에 포함" 확인란이 선택되지 않은 채로 방치되어 있습니다.
  3. 결과는 (그림 2와 유사하게) 일치하는 각 문서의 키와 함께 표시됩니다.

그림 2 - "description:farm"에 대한 "hotel_desc" 색인 검색

4. curl을 사용하여 REST API를 통해 동일한 검색을 실행할 수 있습니다: 

필드 독립적 검색

사용 사례 요약: 사용자가 키워드에 대한 호텔 이름, 별칭, 설명, 주소, 리뷰 필드를 검색하여 호텔을 찾고 일치하는 호텔 목록을 확인할 수 있습니다. 강조 표시된 일치 항목이 포함된.

인덱스 생성 단계: 

  1. 전체 텍스트 검색 UI에서 "색인 추가".
  2. 인덱스 이름(예: "hotel_mult_fields")을 지정하고 여행 샘플 버킷을 선택합니다. 
  3. 여행 샘플 버킷의 각 문서에는 문서의 유형을 나타내는 "type" 필드가 있으므로 "JSON 유형 필드"를 "type"으로 설정해 두세요.
  4. 유형 매핑 아래에서:  
    1. "+ 유형 매핑 추가'를 입력하고 모든 호텔 문서를 검색해야 하므로 유형 이름으로 '호텔'을 지정합니다.  
    2. 사용 가능한 분석기 목록은 유형 이름 필드 오른쪽에 있는 풀다운 메뉴를 통해 액세스할 수 있습니다. 이 사용 사례의 경우, 유형 매핑이 인덱스에서 기본 분석기를 상속하도록 '상속'을 선택한 상태로 둡니다.
    3. 호텔 이름, 별칭, 설명, 주소, 리뷰 필드를 검색해야 하므로 "지정된 필드만 색인화".  이 옵션을 선택하면 문서에서 사용자가 지정한 필드만 호텔 유형 매핑의 색인에 포함됩니다(매핑은 동적이 아니므로 모든 필드를 색인화할 수 있는 것으로 간주됨). 
    4. 클릭 확인.  
    5. 호텔 유형 매핑에 5개의 필드를 각각 추가합니다:
      1. 이름: 호텔 유형 매핑이 있는 행에 마우스를 올려놓고 + 버튼을 클릭한 다음 "하위 필드 삽입". 이렇게 하면 호텔 이름 필드가 인덱스에 개별적으로 포함될 수 있습니다. 다음을 지정합니다: 
        1. 필드를 클릭합니다: 색인할 필드의 이름인 '이름'을 입력합니다.
        2. 유형으로 설정합니다: 이름 필드의 텍스트로 이 설정을 그대로 둡니다.
        3. 로 검색할 수 있습니다: 현재 사용 사례의 필드 이름과 동일하게 유지합니다. 대체 필드 이름을 나타내는 데 사용할 수 있습니다. 
        4. 분석기를 사용합니다: 유형 매핑에서 수행한 것과 같습니다, 이 사용 사례의 경우 "상속"을 선택한 상태로 두십시오. 유형 매핑이 기본 분석기를 상속하도록 설정합니다.
        5. 색인 확인란을 선택합니다: 필드가 색인에 포함되도록 이 확인란을 선택된 상태로 둡니다. 이 확인란을 선택 취소하면 색인에서 필드가 명시적으로 제거됩니다.
        6. 저장 확인란을 선택합니다: 확인 이 설정 를 사용하여 검색 결과에 필드 콘텐츠를 포함시켜 결과에서 일치하는 표현식을 강조 표시할 수 있습니다. 
        7. "_모든 필드에 포함" 확인란을 선택합니다: 사용 사례 요구 사항이 여러 필드를 검색하는 것이므로 이 확인란을 선택된 상태로 둡니다. 
        8. "용어 벡터 포함" 확인란을 선택합니다: 사용 사례에 결과 강조 표시가 필요하므로 이 확인란을 선택된 상태로 둡니다.  
        9. 클릭 확인.
      2. 별칭: 호텔 유형 매핑이 있는 행 위에 마우스를 올려놓고 + 버튼을 클릭한 다음 "하위 필드 삽입". 이렇게 하면 호텔 이름 필드가 인덱스에 개별적으로 포함될 수 있습니다. 다음을 지정합니다: 
        1. 필드를 클릭합니다: 색인할 필드의 이름인 '별칭'을 입력합니다.
        2. 유형으로 설정합니다: 이름 필드의 텍스트로 이 설정을 그대로 둡니다.
        3. 로 검색할 수 있습니다: 현재 사용 사례의 필드 이름과 동일하게 유지합니다. 대체 필드 이름을 나타내는 데 사용할 수 있습니다. 
        4. 분석기를 사용합니다: 유형 매핑에서 수행한 것과 같습니다, 이 사용 사례의 경우 "상속"을 선택한 상태로 두십시오. 유형 매핑이 기본 분석기를 상속하도록 설정합니다.
        5. 색인 확인란을 선택합니다: 필드가 색인에 포함되도록 이 확인란을 선택된 상태로 둡니다. 이 확인란을 선택 취소하면 색인에서 필드가 명시적으로 제거됩니다.
        6. 저장 확인란을 선택합니다: 확인 이 설정 를 사용하여 검색 결과에 필드 콘텐츠를 포함시켜 결과에서 일치하는 표현식을 강조 표시할 수 있습니다.
        7. "_모든 필드에 포함" 확인란을 선택합니다: 사용 사례 요구 사항이 여러 필드를 검색하는 것이므로 이 확인란을 선택된 상태로 둡니다. 
        8. "용어 벡터 포함" 확인란을 선택합니다: 사용 사례에 결과 강조 표시가 필요하므로 이 확인란을 선택된 상태로 둡니다.  
        9. 클릭 확인.
      3. 설명: 호텔 유형 매핑이 있는 행 위에 마우스를 올려놓고 + 버튼을 클릭한 다음 "하위 필드 삽입". 이렇게 하면 호텔 이름 필드가 인덱스에 개별적으로 포함될 수 있습니다. 다음을 지정합니다: 
        1. 필드를 클릭합니다: 색인할 필드의 이름인 '설명'을 입력합니다.
        2. 유형으로 설정합니다: 이름 필드의 텍스트로 이 설정을 그대로 둡니다.
        3. 로 검색할 수 있습니다: 현재 사용 사례의 필드 이름과 동일하게 유지합니다. 대체 필드 이름을 나타내는 데 사용할 수 있습니다. 
        4. 분석기를 사용합니다: 유형 매핑에서 수행한 것과 같습니다, 이 사용 사례의 경우 "상속"을 선택한 상태로 두십시오. 유형 매핑이 기본 분석기를 상속하도록 설정합니다.
        5. 색인 확인란을 선택합니다: 필드가 색인에 포함되도록 이 확인란을 선택된 상태로 둡니다. 이 확인란을 선택 취소하면 색인에서 필드가 명시적으로 제거됩니다.
        6. 저장 확인란을 선택합니다: 확인 이 설정 를 사용하여 검색 결과에 필드 콘텐츠를 포함시켜 결과에서 일치하는 표현식을 강조 표시할 수 있습니다. 
        7. "_모든 필드에 포함" 확인란을 선택합니다: 사용 사례 요구 사항이 여러 필드를 검색하는 것이므로 이 확인란을 선택된 상태로 둡니다. 
        8. "용어 벡터 포함" 확인란을 선택합니다: 사용 사례에 결과 강조 표시가 필요하므로 이 확인란을 선택된 상태로 둡니다.  
        9. 클릭 확인.
      4. 주소: 호텔 유형 매핑이 있는 행 위에 마우스를 올려놓고 + 버튼을 클릭한 다음 "하위 필드 삽입". 이렇게 하면 호텔 이름 필드가 인덱스에 개별적으로 포함될 수 있습니다. 다음을 지정합니다: 
        1. 필드를 클릭합니다: 색인할 필드의 이름인 '주소'를 입력합니다.
        2. 유형으로 설정합니다: 이름 필드의 텍스트로 이 설정을 그대로 둡니다.
        3. 로 검색할 수 있습니다: 현재 사용 사례의 필드 이름과 동일하게 유지합니다. 대체 필드 이름을 나타내는 데 사용할 수 있습니다. 
        4. 분석기를 사용합니다: 유형 매핑에서 수행한 것과 같습니다, 이 사용 사례의 경우 "상속"을 선택한 상태로 두십시오. 유형 매핑이 기본 분석기를 상속하도록 설정합니다.
        5. 색인 확인란을 선택합니다: 필드가 색인에 포함되도록 이 확인란을 선택된 상태로 둡니다. 이 확인란을 선택 취소하면 색인에서 필드가 명시적으로 제거됩니다.
        6. 저장 확인란을 선택합니다: 확인 이 설정을 사용하면 검색 결과에 필드 콘텐츠가 포함되어 일치하는 표현식을 결과에서 강조 표시할 수 있습니다. 
        7. "_모든 필드에 포함" 확인란을 선택합니다: 사용 사례 요구 사항이 여러 필드를 검색하는 것이므로 이 확인란을 선택된 상태로 둡니다. 
        8. "용어 벡터 포함" 확인란을 선택합니다: 사용 사례에 결과 강조 표시가 필요하므로 이 확인란을 선택된 상태로 둡니다.  
        9. 클릭 확인.
      5. 리뷰: 호텔 유형 매핑이 있는 행 위에 마우스를 올려놓고 + 버튼을 클릭한 다음 "하위 필드 삽입". 이렇게 하면 호텔 이름 필드가 인덱스에 개별적으로 포함될 수 있습니다. 다음을 지정합니다: 
        1. 필드를 클릭합니다: 색인화할 필드의 이름인 '리뷰'를 입력합니다.
        2. 유형으로 설정합니다: 이름 필드의 텍스트로 이 설정을 그대로 둡니다.
        3. 로 검색할 수 있습니다: 현재 사용 사례의 필드 이름과 동일하게 유지합니다. 대체 필드 이름을 나타내는 데 사용할 수 있습니다. 
        4. 분석기를 사용합니다: 유형 매핑에서 수행한 것과 같습니다, 이 사용 사례의 경우 "상속"을 선택한 상태로 두십시오. 유형 매핑이 기본 분석기를 상속하도록 설정합니다.
        5. 색인 확인란을 선택합니다: 필드가 색인에 포함되도록 이 확인란을 선택된 상태로 둡니다. 이 확인란을 선택 취소하면 색인에서 필드가 명시적으로 제거됩니다.
        6. 저장 확인란을 선택합니다: 확인 이 설정 를 사용하여 검색 결과에 필드 콘텐츠를 포함시켜 결과에서 일치하는 표현식을 강조 표시할 수 있습니다. 
        7. "_모든 필드에 포함" 확인란을 선택합니다: 사용 사례 요구 사항이 여러 필드를 검색하는 것이므로 이 확인란을 선택된 상태로 둡니다. 
        8. "용어 벡터 포함" 확인란을 선택합니다: 사용 사례에 결과 강조 표시가 필요하므로 이 확인란을 선택된 상태로 둡니다.  
        9. 클릭 확인.
    6. 마지막으로, 선택 취소 '기본' 유형 매핑 옆의 확인란을 선택합니다.  기본 매핑을 활성화한 상태로 두면 사용자가 적극적으로 유형 매핑을 지정했는지 여부에 관계없이 버킷의 모든 문서가 인덱스에 포함됩니다. 호텔 서류만 필요하며, 이전에 추가한 호텔 유형 매핑에 포함되어 있습니다. 
  5. 나머지 접힌 패널(분석기, 사용자 지정 필터, 날짜/시간 파서 및 고급)은 기본값으로 충분합니다. 
  6. 인덱스 복제본은 클러스터가 n+1 노드에서 검색 서비스를 실행하는 경우 1, 2 또는 3으로 설정할 수 있습니다. 단일 노드 개발 클러스터에서는 기본값인 0을 유지합니다. 
  7. 인덱스 유형의 경우, 새로 생성된 인덱스에는 기본값인 '버전 6.0(Scorch)'이 적합합니다. Scorch는 디스크에 있는 인덱스의 크기를 줄이고 인덱싱 및 변경 처리를 위한 향상된 성능을 제공합니다.
  8. 이 시점에서 인덱스 생성 페이지는 그림 3에서 캡처한 마지막 프레임과 같아야 합니다. "색인 만들기'를 클릭하여 프로세스를 완료합니다. 

그림 3 - "hotel_mult_fields" 인덱스 생성

 

참고: REST API를 통해 이 인덱스를 생성하는 데 사용된 JSON 페이로드는 부록 A의 '인덱스: hotel_mult_fields'를 참조하세요.  

인덱스에 대해 쿼리를 테스트합니다: 

  1. 전체 텍스트 검색 UI에서 인덱싱 진행률이 100%로 표시될 때까지 기다린 다음, 인덱스 이름 "hotel_mult_fields"를 클릭합니다. 
  2. 이름, 별칭, 설명, 주소 또는 후기 필드에 '농장' 키워드가 포함된 호텔을 검색하려면 '이 색인 검색...' 텍스트 상자에 '농장'을 입력하고 검색을 클릭합니다. 검색의 필드 범위 지정은 필요하지 않습니다. "호텔 유형 매핑에서 인덱싱된 각 필드에 대해 '_모든 필드에 포함' 확인란이 선택되어 있습니다.
  3. 결과는 그림 4와 유사하게 각 일치하는 문서의 키와 각 일치하는 문서에서 강조 표시된 일치 항목과 함께 표시됩니다.

그림 4 - "farm"에 대한 "hotel_mult_fields" 검색 결과 색인화

 

4. curl을 사용하여 REST API를 통해 동일한 검색을 실행할 수 있습니다: 

가장 가까운 이웃 찾기

사용 사례 요약: 사용자가 지정된 위치에서 특정 거리 내에 있는 호텔을 찾고 지정된 위치에서 거리별로 정렬된 일치하는 호텔 이름 목록을 볼 수 있습니다.

인덱스 생성 단계: 

  1. 전체 텍스트 검색 UI에서 "색인 추가".
  2. 인덱스 이름(예: "hotel_geo")을 지정하고 여행 샘플 버킷을 선택합니다. 
  3. 여행 샘플 버킷의 각 문서에는 문서의 유형을 나타내는 "type" 필드가 있으므로 "JSON 유형 필드"를 "type"으로 설정해 두세요.
  4. 유형 매핑 아래에서:  
    1. "+ 유형 매핑 추가'를 입력하고 모든 호텔 문서를 검색해야 하므로 유형 이름으로 '호텔'을 지정합니다.  
    2. 사용 가능한 분석기 목록은 유형 이름 필드 오른쪽에 있는 풀다운 메뉴를 통해 액세스할 수 있습니다. 이 사용 사례의 경우, 유형 매핑이 인덱스에서 기본 분석기를 상속하도록 '상속'을 선택한 상태로 둡니다.
    3. 호텔 위치만 검색해야 하므로 "지정된 필드만 색인화".  이 옵션을 선택하면 문서에서 사용자가 지정한 필드만 호텔 유형 매핑의 색인에 포함됩니다(매핑은 동적이 아니므로 모든 필드를 색인화할 수 있는 것으로 간주됨). 
    4. 클릭 확인.  
    5. 호텔 유형 매핑에 지역 및 이름 필드를 추가합니다:
      1. Geo: 호텔 유형 매핑이 있는 행 위에 마우스를 놓고 + 버튼을 클릭한 다음 "하위 필드 삽입". 이렇게 하면 호텔 지역 필드를 인덱스에 개별적으로 포함할 수 있습니다. 다음을 지정합니다: 
        1. 필드를 클릭합니다: 색인할 필드의 이름인 'geo'를 입력합니다.
        2. 유형으로 설정합니다: 유형: 다음과 같이 설정합니다. 지오포인트.
        3. 로 검색할 수 있습니다: 현재 사용 사례의 필드 이름과 동일하게 유지합니다. 대체 필드 이름을 나타내는 데 사용할 수 있습니다. 
        4. 색인 확인란을 선택합니다: 필드가 색인에 포함되도록 이 확인란을 선택된 상태로 둡니다. 이 확인란을 선택 취소하면 색인에서 필드가 명시적으로 제거됩니다.
        5. 저장 확인란을 선택합니다: 확인 이 설정을 사용하면 검색 결과에 필드 콘텐츠를 포함할 수 있습니다. 
        6. "_모든 필드에 포함" 확인란을 선택합니다: 사용 사례 요구 사항이 지역 필드를 검색하는 것이므로 이 확인란을 선택된 상태로 둡니다. 
        7. 확인을 클릭합니다.
      2. 이름: 호텔 유형 매핑이 있는 행에 마우스를 올려놓고 + 버튼을 클릭한 다음 "하위 필드 삽입". 이렇게 하면 호텔 이름 필드가 인덱스에 개별적으로 포함될 수 있습니다. 다음을 지정합니다: 
        1. 필드를 클릭합니다: 색인할 필드의 이름인 '이름'을 입력합니다.
        2. 유형으로 설정합니다: 이름 필드의 텍스트로 이 설정을 그대로 둡니다.
        3. 로 검색할 수 있습니다: 현재 사용 사례의 필드 이름과 동일하게 유지합니다. 대체 필드 이름을 나타내는 데 사용할 수 있습니다. 
        4. 분석기를 사용합니다: 유형 매핑에서 수행한 것과 같습니다, 이 사용 사례의 경우 "상속"을 선택한 상태로 두십시오. 유형 매핑이 기본 분석기를 상속하도록 설정합니다.
        5. 색인 확인란을 선택합니다: 필드가 색인에 포함되도록 이 확인란을 선택된 상태로 둡니다. 이 확인란을 선택 취소하면 색인에서 필드가 명시적으로 제거됩니다.
        6. 저장 확인란을 선택합니다: 확인 이 설정을 사용하면 검색 결과에 필드 콘텐츠를 포함할 수 있습니다. 
        7. "_모든 필드에 포함" 확인란을 선택합니다: 선택 취소사용 사례의 요구 사항은 위치로만 검색하되 검색 결과에 이름을 표시하는 것이기 때문입니다. 
        8. "용어 벡터 포함" 확인란을 선택합니다: 특정 종류의 기능(예: 강조 표시, 구문 검색)에는 용어 벡터가 필요하지만 인덱스의 크기와 빌드 시간이 늘어납니다. 선택 취소 사용 사례는 지리적 위치로만 검색하는 것이므로 이 상자를 선택하지 마세요.  
        9. 확인을 클릭합니다.
    6. 마지막으로, 선택 취소 '기본' 유형 매핑 옆의 확인란을 선택합니다.  기본 매핑을 활성화된 상태로 두면 사용자가 적극적으로 유형 매핑을 지정했는지 여부에 관계없이 버킷의 모든 문서가 색인에 포함됩니다. 호텔 문서만 필요하며 이전에 추가한 호텔 유형 매핑에 의해 포함됩니다. 
  5. 나머지 접힌 패널(분석기, 사용자 지정 필터, 날짜/시간 파서 및 고급)은 기본값으로 충분합니다. 
  6. 인덱스 복제본은 클러스터가 n+1 노드에서 검색 서비스를 실행하는 경우 1, 2 또는 3으로 설정할 수 있습니다. 단일 노드 개발 클러스터에서는 기본값인 0을 유지합니다. 
  7. 인덱스 유형의 경우, 새로 생성된 인덱스에는 기본값인 '버전 6.0(Scorch)'이 적합합니다. Scorch는 디스크에 있는 인덱스의 크기를 줄이고 인덱싱 및 변경 처리를 위한 향상된 성능을 제공합니다.
  8. 이 시점에서 색인 생성 페이지는 그림 5와 같이 표시되어야 합니다. "색인 만들기'를 클릭하여 프로세스를 완료합니다. 

그림 5 - 인덱스 생성 "hotel_geo"

 

참고: REST API를 통해 이 인덱스를 생성하는 데 사용된 JSON 페이로드는 부록 A의 "Index: hotel_geo"를 참조하세요.  

인덱스에 대해 쿼리를 테스트합니다: 

  1. 전체 텍스트 검색 UI에서 인덱싱 진행률이 100%로 표시될 때까지 기다립니다. 
  2. Couchbase 웹 콘솔의 검색 UI를 통해 "쿼리 문자열" 쿼리만 테스트할 수 있으므로 이 지리 공간 검색 는 curl을 사용하여 REST API를 통해 테스트됩니다. 샌프란시스코의 한 위치에서 1마일 이내에 가장 가까운 호텔 2곳을 검색하고, 다음 JSON 쿼리 본문을 사용하여 거리별로 정렬된 호텔 이름과 좌표를 반환합니다:  

3. 쿼리 결과 JSON: 

동적 검색

사용 사례 요약: 사용자가 호텔 문서의 속성에 나타나는 키워드를 검색하여 호텔을 찾고 일치하는 호텔 목록을 볼 수 있습니다.

이 경우 필드가 추가 또는 제거되거나 필드가 단순한 문자열에서 객체로 변경되는 등 항상 변화하는 데이터를 검색하고자 하며, 검색은 항상 일치하는 랜드마크를 찾아야 합니다. 이 요구 사항을 충족하기 위해 동적 인덱스를 만들 것입니다.

인덱스 생성 단계: 

  1. 전체 텍스트 검색 UI에서 "색인 추가".
  2. 인덱스 이름(예: "hotel_dynamic")을 지정하고 여행 샘플 버킷을 선택합니다. 
  3. 여행 샘플 버킷의 각 문서에는 문서의 유형을 나타내는 "type" 필드가 있으므로 "JSON 유형 필드"를 "type"으로 설정해 두세요.
  4. 유형 매핑 아래에서:  
    1. "+ 유형 매핑 추가'를 입력하고 모든 호텔 문서를 검색해야 하므로 유형 이름으로 '호텔'을 지정합니다.  
    2. 사용 가능한 분석기 목록은 유형 이름 필드 오른쪽에 있는 풀다운 메뉴를 통해 액세스할 수 있습니다. 이 사용 사례의 경우, 유형 매핑이 인덱스에서 기본 분석기를 상속하도록 '상속'을 선택한 상태로 둡니다.
    3. 모든 호텔 문서 필드를 검색해야 하므로 "지정된 필드만 색인화"를 선택 취소합니다.  이 옵션을 선택하지 않으면 매핑이 동적으로 이루어지며, 이는 모든 필드가 인덱싱에 사용할 수 있는 것으로 간주됨을 의미합니다. 
    4. 확인을 클릭합니다.  
    5. 마지막으로, 선택 취소 '기본' 유형 매핑 옆의 확인란을 선택합니다.  기본 매핑을 활성화된 상태로 두면 사용자가 적극적으로 유형 매핑을 지정했는지 여부에 관계없이 버킷의 모든 문서가 색인에 포함됩니다. 호텔 문서만 필요하며 이전에 추가한 호텔 유형 매핑에 의해 포함됩니다. 
  5. 나머지 접힌 패널(분석기, 사용자 지정 필터, 날짜/시간 파서 및 고급)은 기본값으로 충분합니다. 
  6. 인덱스 복제본은 클러스터가 n+1 노드에서 검색 서비스를 실행하는 경우 1, 2 또는 3으로 설정할 수 있습니다. 단일 노드 개발 클러스터에서는 기본값인 0을 유지합니다. 
  7. 인덱스 유형의 경우, 새로 생성된 인덱스에는 기본값인 '버전 6.0(Scorch)'이 적합합니다. Scorch는 디스크에 있는 인덱스의 크기를 줄이고 인덱싱 및 변경 처리를 위한 향상된 성능을 제공합니다.
  8. 이 시점에서 색인 생성 페이지는 그림 5와 같이 표시되어야 합니다. "색인 만들기'를 클릭하여 프로세스를 완료합니다. 

그림 6 - 인덱스 생성 "hotel_dynamic"

참고: REST API를 통해 이 인덱스를 생성하는 데 사용된 JSON 페이로드는 부록 A의 '인덱스: 호텔_동적'을 참조하세요.  

인덱스에 대해 쿼리를 테스트합니다: 

  1. 전체 텍스트 검색 UI에서 인덱싱 진행률이 100%로 표시될 때까지 기다린 다음, 인덱스 이름 "hotel_dynamic"을 클릭합니다. 
  2. 호텔 문서의 모든 필드에 키워드 'farm'이 포함된 호텔을 검색하려면 '이 색인 검색...' 텍스트 상자에 'farm'을 입력하고 검색을 클릭합니다. 모든 필드가 동적 인덱스에 포함되므로 검색의 필드 범위 지정은 필요하지 않습니다..
  3. 결과는 (그림 7과 유사하게) 일치하는 각 문서의 키와 함께 표시됩니다.

그림 7 - "farm"에 대한 "hotel_dynamic" 검색 결과 색인화

 

4. curl을 사용하여 REST API를 통해 동일한 검색을 실행할 수 있습니다: 

 

 

부록 A - 인덱스 정의 JSON

색인: hotel_desc

색인: hotel_mult_fields

색인: hotel_geo

색인: hotel_dynamic

 

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

작성자

게시자 Brian Kane, 솔루션 엔지니어, Couchbase

Brian Kane은 Couchbase의 솔루션 엔지니어로 1996년부터 애플리케이션 개발 및 데이터베이스 기술 분야에서 일하고 있습니다. 현재 텍사스주 휴스턴에 거주하고 있습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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