쿼리 개요
IBM Watson® Discovery 검색 쿼리를 통해 강력한 콘텐츠 검색 기능을 제공합니다.
수집, 색인, 보강된 후 Discovery에서 데이터를 검색하려면 쿼리를 제출하세요.
Discovery에 데이터가 추가되면 각 파일의 표현이 JSON 형식의 문서로 인덱스에 저장됩니다. 컬렉션에 적용되는 보강 기능은 데이터에서 의미 있는 정보를 식별하여 이러한 문서의 새 필드에 저장합니다. 데이터를 검색하려면 쿼리를 제출하여 가장 관련성이 높은 문서를 반환하고 원하는 정보를 추출하세요.
조회 유형
Discovery에서는 다음 지원 쿼리 유형 중 하나를 허용합니다:
- 조회
-
문서에서 특정 필드에 관심 있는 값이 있는 문서를 찾습니다. 이 유형의 쿼리는 Discovery 쿼리 언어 구문을 사용하여 검색 기준을 정의합니다.
Parameter name:
query - 자연어 쿼리(NLQ)
-
자연어로 작성된 쿼리에 대한 답변을 찾습니다. NLQ 요청은 텍스트 문자열 값을 허용합니다.
Parameter name:
natural_language_query
지원되는 쿼리 유형 중 하나를 사용하여 지정하는 쿼리와 함께 다음 매개변수 중 하나 또는 둘 모두를 포함할 수 있습니다. 이러한 매개변수의 값은 Discovery 쿼리 언어(DQL) 구문을 사용하여 지정할 수도 있습니다:
filteraggregation
Discovery 쿼리 언어에 대한 자세한 내용은 DQL 개요 를 참조하세요.
제품 사용자 인터페이스에서 제출되는 쿼리는 자연어 쿼리입니다. 지원되는 몇 가지 다른 매개변수는 사용 중인 프로젝트 유형에 따라 지정되고 기본값이 지정됩니다. 자세한 내용은 기본 쿼리 설정 를 참조하세요.
Discovery가 쿼리 요청 데이터를 기록하지 않습니다. 로깅을 요청하려면 옵트인할 수 없습니다.
올바른 쿼리 유형 선택하기
다음 표에는 각 쿼리 유형에 대해 지원되는 기능이 요약되어 있습니다. 이를 사용하여 제출할 쿼리 유형을 결정하는 데 도움을 받을 수 있습니다.
| 목표 | 자연어 쿼리(NLQ) | Discovery 쿼리 언어(DQL) |
|---|---|---|
| 문서에서 구절 반환 | ||
| 응답에서 용어 강조 표시(문서별 구절이 활성화되어 있지 않은 경우) | ||
| 사용자 지정 중지 단어 또는 쿼리 확장 정의 | ||
| 특정 문서 필드 또는 보강 검색 | ||
| 검색에 부울 절과 같은 연산자 사용 | ||
| 맞춤법 수정 사용 | ||
| 큐레이션을 추가하여 특정 질문에 대한 하드코딩된 답변을 반환합니다 | ||
| 관련성 교육 사용 | ||
| 답 찾기 기능을 활성화하여 구절에서 간결한 답을 반환합니다 | ||
| 테이블 검색 사용 |
쿼리 분석
쿼리를 제출하면 쿼리 텍스트 문자열이 분석됩니다. 쿼리 분석 중에 쿼리에 포함된 각 주요 용어의 루트(또는 렘마)가 식별됩니다. 원래 쿼리 문자열에 포함된 모든 중지 단어가 제거되고 원래 쿼리 문자열에 포함된 모든 용어에 대해 정의된 동의어 확장이 추가됩니다. 이 향상된 버전의 쿼리는 Discovery에 제출되는 쿼리입니다.
자연어 쿼리로 제출된 쿼리이든 Discovery 쿼리 언어 구문을 사용하여 제출된 쿼리이든 모든 쿼리에 대해 동일한 분석이 수행됩니다.
쿼리 흐름
다음 다이어그램은 Discovery에서 검색 요청을 처리하는 방법을 개념적으로 보여줍니다.
다음과 같은 과정이 흐름도에 표시되어 있습니다:
- BM25
- 베스트 매치 25(확률적 정보 검색 알고리즘)를 사용하여 검색에서 반환된 각 문서에 대한 관련성 점수를 계산합니다. 다이어그램에서는 BM25가 쿼리 요청의 문서 결과에 적용되었지만 쿼리 요청에만 국한되지 않음을 보여줍니다. 또한 자연어 쿼리 결과에 적용되는 관련성 학습 랭커 프로세스의 일부로 다른 기술과 함께 사용됩니다.
- 큐레이션
- 자연어 쿼리가 미리 정의된 큐레이션 쿼리와 일치하면 특정 문서와 하드코딩된 스니펫이 반환됩니다. 큐레이션을 활성화하는 쿼리 매개변수는 없습니다. 큐레이션을 사용하려면 프로그래밍 방식으로 큐레이션을 정의해야 합니다(큐레이션 방법 만들기). 모든 큐레이션의 출력은 연관성 트레이닝 랭커의 출력 또는 QPP 결과와 병합됩니다.
- 관련성 훈련
- 선택적으로 정의하고 프로젝트에 적용하여 문서의 관련성을 점수화할 수 있는 모델입니다. 연관성 학습을 활성화하는 쿼리 매개 변수는 없습니다. 연관성 훈련을 사용하려면 프로그래밍 방식으로(훈련 쿼리 방법 만들기) 또는 제품 사용자 인터페이스를 사용하여 프로젝트를 성공적으로 훈련해야 합니다.
- QPP
- 쿼리 성능 예측 알고리즘은 쿼리와 상위 결과 목록이 주어지면 문서의 관련성을 결정하는 점수를 생성합니다. 사용 가능한 관련성 교육 순위가 없는 경우에만 사용됩니다.
- 필터
filter매개변수는query및natural_language_query요청과 함께 전달하여 결과 집합에서 특정 기준을 충족하지 않는 문서를 제거할 수 있습니다. 필터는 문서 검색 단계의 마지막 단계로 표시됩니다. 그러나 흐름에서 다른 시점에 사용됩니다. 다이어그램에서 필터 정의와 일치하지 않는 문서가 결과 집합에서 제외된다는 사실을 강조하기 위해 필터의 위치가 선택되었습니다. 이 제외는 큐레이션에 지정될 수 있는 문서에도 적용됩니다.- 단락 검색
- 자연어 쿼리 요청에
passages.enabled=true매개 변수가 포함된 경우 문서에서 구절을 반환합니다. - 답변 찾기
passages.find_answers=true매개 변수가 자연어 쿼리 요청에 포함되면 문서에서 추출한 구절과 함께 구절에서 간결한 답변을 반환합니다. 정답 찾기를 활성화한 경우 각 검색 결과에 대한 최종 신뢰도 점수는 정답 찾기, 구절 검색, QPP 또는 재순위 검색 중 사용된 방법의 신뢰도 점수를 합산한 값입니다.- 테이블 검색
- 자연어 쿼리 요청에
table_results.enabled=true매개 변수가 포함된 경우 문서 내 테이블의 정보를 반환합니다.
조회 한계
쿼리는 API의 POST 엔드포인트에 /query 요청을 제출하는 모든 작업입니다. 이러한 작업에는 API를 사용하여 제출하는 쿼리가 포함됩니다. 제품 사용자 인터페이스의 개선 및 사용자 지정 페이지의 검색창에서 제출한 쿼리는 포함되지 않습니다.
쿼리는 요청이 성공한 경우, 즉 응답(메시지 코드 200 포함)을 반환하는 경우에만 카운트됩니다.
서비스 인스턴스당 한 달에 제출할 수 있는 검색 쿼리 수는 Discovery 요금제 유형에 따라 다릅니다.
| 플랜 | 서비스 인스턴스당 월별 쿼리 수 |
|---|---|
| Cloud Pak for Data | 무제한 |
| 프리미엄 | 무제한 |
| 구축 | 무제한 |
| 플러스(평가판 포함) | 500,000 |
Enterprise 요금제의 경우에만 청구서에는 쿼리 검색 및 분석 API 호출에서 생성된 요청을 '쿼리'로 표시합니다. API 호출 분석에 대한 자세한 내용은 API 한도 분석 를 참조하세요.
서비스 인스턴스당 초당 처리할 수 있는 쿼리 수는 Discovery 요금제 유형에 따라 다릅니다.
| 플랜 | 서비스 인스턴스당 동시 쿼리 수 |
|---|---|
| Cloud Pak for Data | 무제한 |
| 프리미엄 | 50 |
| 구축 | 5 |
| 플러스(평가판 포함) | 5 |
요금제에 대한 자세한 내용은 Discovery 요금제 를 참조하세요.
쿼리 사용량 예측
애플리케이션이 한 달에 사용할 쿼리 수를 추정하는 방법은 사용 사례에 따라 다릅니다.
- 데이터 보강 및 분석에 더 중점을 두거나 문서 처리의 결과물이 검색량이 많지 않은 사용 사례의 경우, 총 문서 수를 기준으로 쿼리 수를 추정할 수 있습니다.
- 많은 사용자가 Discovery를 사용하는 애플리케이션과 상호작용하는 사용 사례의 경우, 사용자당 검색 횟수에 예상 사용자 수를 곱하여 추정할 수 있습니다. 예를 들어, 사용자가 가상 어시스턴트에게 제출하는 질문의 50%는 Discovery에 의해 답변될 가능성이 높습니다. 월 사용자 수가 100,000명이고 사용자당 평균 질문 수가 3개인 경우 월 15,000개의 쿼리가 발생할 것으로 예상할 수 있습니다. (사용자 10,000명/월 * 쿼리 3개/사용자 * 50%에서 Discovery = 15,000)
문서 수준 보안이 활성화된 상태에서 쿼리하기
IBM Cloud Pak for Data IBM Software Hub
이 정보는 설치된 배포에만 적용됩니다.
컬렉션에 문서 수준 보안을 사용 설정하면 현재 사용자에게 액세스 권한이 있는 문서만 검색 결과에 반환됩니다. 자세한 내용은 문서 수준 보안 구성하기 를 참조하세요.
보안 제한 사항을 준수하는 검색 결과를 반환하려면 현재 사용자가 이러한 요구 사항을 충족해야 합니다:
- Discovery 인스턴스에 액세스할 수 있습니다.
- 데이터 소스에 액세스할 수 있습니다.
현재 사용자가 이러한 요구 사항을 충족하지 않으면 검색 결과가 반환되지 않습니다.
Discovery 인스턴스와 연결된 사용자 이름은 인증 토큰을 생성하는 데 사용됩니다. 이 토큰은 Discovery 쿼리를 인증하는 데 사용됩니다.
각각의 액세스 토큰을 생성하려면 다음 명령을 실행하십시오.
curl -u "{username}:{password}" \
"https://{hostname}:{port}/v1/preauth/validateAuth"
{username} 및 {password} 를 사용자의 Discovery 자격 증명으로 바꿉니다.
쿼리를 실행할 때 사용자와 연결된 무기명 토큰을 사용합니다.
curl -H "Authorization: Bearer {token}" \
'https://{hostname}/{instance_name}/v2/projects/{project_id}/collections/{Collection_ID}/query\?version\=2019-11-29'