Cognitive Search 질문과 대답

Azure Cognitive Search 대한 일반적인 질문에 대한 답변을 찾습니다.

일반

Azure Cognitive Search란?

Azure Cognitive Search 전체 텍스트 검색 시나리오에 대한 검색 가능한 콘텐츠의 전용 검색 엔진 및 영구 스토리지를 제공하는 Azure의 서비스입니다. 또한 인덱싱 중에 사용되는 선택적 통합 AI를 포함하여 원시 콘텐츠에서 더 많은 텍스트와 구조를 추출합니다.

Cognitive Search를 사용할 어떻게 할까요? 있나요?

기본 워크플로는 인덱스 만들기, 로드 및 쿼리입니다. 대부분의 작업에 포털을 사용할 수 있지만 Cognitive Search는 프로그래밍 방식으로 사용되어 클라이언트 코드의 요청을 처리합니다. 프로그래밍 방식 지원은 Azure용 .NET, Python, Java 및 JavaScript SDK의 REST API 및 클라이언트 라이브러리를 통해 제공됩니다.

"Azure Search" 및 "Azure Cognitive Search"이 동일한 서비스인가요?

Azure Search는 서비스 운영에서 인식 기술 및 AI 처리의 확장된(아직 선택 사항)을 반영하기 위해 2019년 10월에 Azure Cognitive Search 이름이 바뀌었습니다.

어떤 언어가 지원되나요?

토큰화에 사용되는 기본 분석기는 표준 Lucene이며 언어에 구애받지 않습니다. 그렇지 않으면 언어 지원은 언어 규칙을 인바운드(인덱싱) 및 아웃바운드(쿼리) 콘텐츠에 적용하는 언어 분석기를 통해 표현됩니다. 의미 체계 검색맞춤법 검사기와 같은 일부 기능은 언어의 하위 집합으로 제한됩니다.

내 솔루션에 검색을 통합할 어떻게 할까요? 있나요?

클라이언트 코드는 클라이언트 라이브러리 또는 REST API를 호출하여 검색 인덱스에 연결하고, 쿼리를 작성하며, 응답을 처리해야 합니다. 인덱스를 빌드하고 새로 고치거나 프로그래밍 방식으로 또는 스크립트로 인덱서를 실행하는 코드를 작성할 수도 있습니다.

다양한 API에 기능 패리티가 있나요?

항상 그렇지는 않습니다. REST API는 항상 미리 보기 API 버전에서 새 기능을 구현하는 첫 번째 버전이며 일반적으로 사용 가능한 버전은 모든 프로그래밍 작업을 지원합니다. Azure SDK의 클라이언트 라이브러리는 시간이 지남에 따라 새로운 기능을 선택하지만 자체 일정에 따라 릴리스됩니다.

REST API는 먼저 최신 기능을 사용하지만 Azure SDK는 더 많은 코딩 지원을 제공하며 필요한 기능을 사용할 수 없는 한 REST를 통해 권장됩니다.

서비스를 일시 중지하고 청구를 중지할 수 있나요?

검색 서비스를 일시 중지할 수 없습니다. Azure Cognitive Search 서비스를 만들 때 컴퓨팅 리소스가 할당됩니다. 요청에 따라 이러한 리소스를 해제하고 재청구하는 것은 불가능합니다.

서비스를 업그레이드, 다운그레이드, 이름 바꾸기 또는 이동할 수 있나요?

서비스 계층, 이름 및 지역은 서비스 수명 동안 고정됩니다.

검색 서비스를 다른 구독 또는 리소스 그룹으로 마이그레이션하는 경우 가동 중지 시간이 예상되어야 하나요?

리소스를 이동하기 전에 검사 목록을 따르고 각 단계가 완료되었는지 확인하는 한 가동 중지 시간이 없어야 합니다.

인덱싱

Cognitive Search에서 "인덱싱"은 무엇을 의미하나요?

검색 인덱스를 채우는 텍스트 콘텐츠 및 토큰의 수집, 구문 분석 및 저장을 나타냅니다. 인덱싱은 정보 검색을 지원하는 반전된 인덱스 및 기타 물리적 데이터 구조를 만듭니다.

인덱스를 이동, 백업 및 복원할 수 있나요?

인덱스 관리에 대한 기본 지원은 없습니다. 검색 인덱스는 작동 데이터를 수집하는 다른 데이터 원본의 콘텐츠를 허용하는 다운스트림 데이터 구조로 간주됩니다. 따라서 인덱스를 삭제하거나 이동하려는 경우 원본 데이터에서 인덱스를 다시 빌드할 것이라는 기대 때문에 인덱스 백업 및 복원에 대한 기본 제공 지원이 없습니다.

그러나 검색 서비스 간에 인덱스를 이동하려는 경우 이 Azure Cognitive Search .NET 샘플 리포지토리에서 index-backup-restore 샘플 코드를 사용해 볼 수 있습니다.

인덱스 또는 서비스가 삭제되면 복원할 수 있나요?

아니요, Azure Cognitive Search 인덱스 또는 서비스를 삭제하면 복구할 수 없습니다. 검색 서비스를 삭제하면 서비스의 모든 인덱스가 영구적으로 삭제됩니다.

SQL Database 복제본에서 인덱싱할 수 있나요?

Azure SQL Database에 대한 검색 인덱서를 사용하는 경우 처음부터 인덱스를 빌드할 때 주 복제본 또는 보조 복제본을 데이터 원본으로 사용하는 것에 대한 제한은 없습니다. 그러나 증분 업데이트(변경된 레코드 기준)를 통해 인덱스를 새로 고칠 때는 주 복제본이 필요합니다. 이것은 주 복제본에서만 변경 추적을 보장하는 SQL Database에 따른 요구 사항입니다. 인덱스 새로 고침 워크로드에 보조 복제본을 사용하려고 하면 모든 데이터를 얻을 수 있다는 보장은 없습니다.

쿼리

쿼리 실행은 어디에서 발생하나요?

쿼리는 검색 서비스에서 호스트되는 단일 검색 인덱스를 통해 실행됩니다. 여러 인덱스를 조인하여 둘 이상의 인덱스에서 콘텐츠를 검색할 수는 없지만 여러 검색 서비스에서 동일한 이름 인덱스를 쿼리할 수 있습니다.

유효하다고 알고 있는 용어에 대해 일치가 0인 이유는 무엇인가요?

가장 일반적인 사례는 각 쿼리 유형이 다양한 검색 동작과 언어 분석 수준을 지원한다는 것을 알지 못하는 것입니다. 핵심 작워크로드인 전체 텍스트 검색에는 용어를 근본 형태로 분석하는 언어 분석 단계가 포함됩니다. 토큰화된 용어는 더 많은 변형 항목과 일치하기 때문에 이 쿼리 구문 분석 단계에는 가능한 일치보다 범위가 더 넓어집니다.

그러나 와일드카드, 유사 항목 및 정규식 쿼리는 일반 용어 또는 구 쿼리처럼 분석되지 않으며 쿼리가 검색 인덱스에서 분석된 단어 형식과 일치하지 않으면 회수가 저하될 수 있습니다. 쿼리 구문 분석 및 분석에 대한 자세한 내용은 쿼리 아키텍처를 참조하세요.

와일드카드 검색이 느린 이유는 무엇인가요?

접두사, 유사 항목 및 regex와 같은 대부분의 와일드카드 검색 쿼리는 검색 인덱스에서 일치하는 용어를 사용하여 내부적으로 다시 작성됩니다. 이 추가 처리는 대기 시간을 추가합니다. 또한 예를 들어 많은 용어로 a* 다시 작성될 가능성이 있는 광범위한 검색 쿼리는 느려질 수 있습니다. 고성능 와일드카드 검색을 수행하려면 사용자 지정 분석기를 정의하는 것이 좋습니다.

여러 인덱스에서 검색할 수 있나요?

아니요, 쿼리는 항상 단일 인덱스로 범위가 지정됩니다.

매 경기마다 검색 점수가 상수 1.0인 이유는 무엇인가요?

검색 점수는 일치하는 용어의 통계 속성을 기반으로 전체 텍스트 검색 쿼리에 대해 생성되며 결과 집합에서 높음에서 낮은 순서로 정렬됩니다. 전체 텍스트 검색(와일드카드, 접두사, 정규식)이 아닌 쿼리 형식은 관련성 점수로 순위가 지정되지 않습니다. 이 동작은 의도된 것입니다. 상수 점수를 사용하면 순위에 영향을 주지 않고 쿼리 확장을 통해 찾은 일치 항목이 결과에 포함될 수 있습니다.

예를 들어, 와일드카드 검색에서 "tour*"를 입력하면 "tours", "tourettes" 및 "tourmaline"이 일치합니다. 이러한 결과의 특성을 감안할 때 어떤 용어가 다른 용어보다 더 가치 있는지 합리적으로 유추할 수 있는 방법은 없습니다. 이러한 이유로 와일드카드, 접두사 및 regex 형식의 쿼리에서 점수를 매기면 용어 빈도가 무시됩니다. 예기치 않은 일치의 가능성에 따른 왜곡을 방지하기 위해 부분 이력 기준 검색 결과에는 일정 점수가 부여됩니다.

보안

Cognitive Search는 고객 데이터를 어디에 저장하나요?

Cognitive Search는 서비스가 배포된 지역 외부에 고객 데이터를 저장하지 않습니다.

Cognitive Search는 처리를 위해 고객 데이터를 다른 서비스로 보내나요?

예, Cognitive Services를 기반으로 하는 기본 제공 기술을 사용하는 경우 인덱서는 내부 네트워크를 통해 Cognitive Services에 요청을 보냅니다. 사용자 지정 기술을 추가하면 인덱서는 사용자 지정 기술에 제공된 URI로 콘텐츠를 보냅니다.

사용자 ID에 따라 검색 결과에 대한 액세스를 제어할 수 있나요?

그렇지 않습니다. 일반적으로 애플리케이션을 실행할 권한이 있는 사용자는 모든 검색 결과를 볼 수 있는 권한도 부여됩니다. Cognitive Search에는 행 수준 또는 문서 수준 권한에 대한 기본 제공 지원이 없지만 해결 방법으로 보안 필터를 구현할 수 있습니다.

사용자 ID에 따라 작업에 대한 액세스를 제어할 수 있나요?

콘텐츠에 대한 데이터 평면 작업에 대한 역할 기반 권한 부여는 이제 공개 미리 보기로 제공됩니다.

검색 서비스가 IP 방화벽 또는 프라이빗 엔드포인트 뒤에 있는 경우 Azure Portal 사용하여 검색 콘텐츠를 보고 관리할 수 있나요?

클라이언트 및 포털 액세스를 허용하는 네트워크 예외를 만드는 경우 네트워크로 보호되는 검색 서비스에서 Azure Portal 사용할 수 있습니다. 자세한 내용은 IP 방화벽을 통해 연결 또는 프라이빗 엔드포인트를 통해 연결을 참조하세요.

다음 단계

질문에 대한 대답이 여기에 없으면 다음 출처에서 추가 질문 및 대답을 참조할 수 있습니다.

스택 오버플로: Azure Cognitive Search
Azure Cognitive Search의 전체 텍스트 검색 작동 방식
Azure Cognitive Search란?