2017-10-15 4 views
1

우리는 Couchbase 4.6.2를 사용하고 전체 텍스트 검색 기능을 사용하려고합니다. 우리의 시도는 검색, 정렬 및 페이지 매김입니다.전체 속성에서 정렬 할 Couchbase 전체 텍스트 검색 색인을 구성하는 방법

현재 기본 색인 설정을 사용하여 색인을 생성했습니다.

FTS 기능이 레코드를 정렬 할 때 필드의 한 단어를 기준으로 정렬됩니다. 문서를 기반으로 볼 때 전체 텍스트 검색 인덱싱이 작동하는 방식 (그리고 인덱스에서 선택된 분석기) 때문인 것으로 보입니다. 각 단어를 가져 와서 색인을 만듭니다. 그런 다음 정렬을 수행 할 때 해당 필드에 대해 최소 또는 최대 값을 선택하고 해당 값을 정렬합니다.

FTS는 단어 단위로 필드를 색인화 할 수 있지만 속성의 전체 내용에 대해 정렬을 수행 할 수 있습니까?

+0

FYI v5.0은 훨씬 빠르며 지난 주에 다양한 버그 수정 및 개선으로 방금 출시되었습니다. – 1tylermitchell

답변

4

정렬은 지정된 필드에 대한 색인의 용어를 사용하여 작동합니다. 따라서 전체 값을 정렬하려면 전체 필드 값을 단일 용어로 유지하므로 키워드 분석기를 사용해야합니다. 해당 필드에서 키워드 분석기를 사용하면 "비디오 게임"과 같은 값이 단일 용어로 색인화됩니다.

그런 다음 정렬 할 필드를 지정하면 전체 값으로 정렬됩니다. 또한 다른 답변 중 하나와 달리 정렬은 인덱싱 된 값에서 작동하며 저장된 값을 필요로하지 않습니다.

관련된 문제는 필드에서 검색하고 정렬하기를 원할 때가 있으며이 경우 키워드가 아닌 분석기를 사용하고 싶다는 것입니다. 두 가지 유스 케이스를 모두 수용하려면 검색을 위해 한 번, 정렬을 위해 한 번 필드를 두 번 색인화하기 만하면됩니다. 이렇게하려면 단순히 다른 이름을 지정해야합니다. 검색을 위해 'category'와 정렬을 위해 'category.sort'와 같은 것입니다.

0

예 : "sort": [ "fieldname"] 오름차순 및 "sort": [ "-fieldname"] 검색 결과에서 정렬 된 결과를 탐색 할 수 있습니다. "] 내림차순. 하지만이 경우 인덱스 생성 중에 "스토어 필드"/ "동적 필드 저장"을 활성화해야합니다.