검색 트래픽 분석을 위한 원격 분석 데이터 수집

검색 트래픽 분석은 사용자가 시작한 클릭 이벤트 및 키보드 입력과 같이 Azure AI Search 애플리케이션과의 사용자 상호 작용에 대한 원격 분석을 수집하기 위한 패턴입니다. 이 정보를 사용하면 인기 있는 검색어, 클릭 광고 비율 및 결과가 0인 쿼리 입력을 비롯한 검색 솔루션의 효율성을 확인할 수 있습니다.

이 패턴은 사용자 데이터를 수집하는 Application Insights(Azure Monitor의 기능)에 의존합니다. 이 문서에 설명된 대로 클라이언트 코드에 계측을 추가해야 합니다. 마지막으로 데이터를 분석하는 보고 메커니즘이 필요합니다. Power BI를 권장하지만, Application Insights에 연결되는 도구 또는 Application Dashboard를 사용할 수 있습니다.

참고 항목

이 문서에 설명된 패턴은 고급 시나리오 및 클라이언트에 추가하는 코드에서 생성된 클릭 동향 데이터를 위한 것입니다. 이와 대조적으로 서비스 로그는 설정하기 쉬우며, 다양한 메트릭을 제공하고, 포털에서 코드 없이 수행할 수 있습니다. 모든 시나리오에 대해 로깅을 사용하도록 설정하는 것이 좋습니다. 자세한 내용은 로그 데이터 수집 및 분석을 참조하세요.

관련 검색 데이터 식별

검색 트래픽 검색의 유용한 메트릭을 확보하려면 검색 애플리케이션의 사용자로부터 일부 신호를 기록해야 합니다. 이러한 신호는 사용자가 관심을 보이고 관련이 있다고 생각하는 콘텐츠를 나타냅니다. 검색 트래픽 분석의 경우에는 다음이 포함됩니다.

  • 사용자가 생성한 검색 이벤트: 사용자가 시작한 검색 쿼리만 흥미를 끕니다. 패싯을 채우거나 내부 정보를 검색하는 데 사용되는 것과 같은 다른 검색 요청은 중요하지 않습니다. 결과가 왜곡되거나 치우치지 않도록 사용자가 시작한 이벤트만 계측해야 합니다.

  • 사용자가 생성한 클릭 이벤트: 검색 결과 페이지에서 클릭 이벤트는 일반적으로 문서가 특정 검색 쿼리와 관련된 결과라는 의미입니다.

상관 관계 ID를 사용하여 검색 및 클릭 이벤트를 연결하면 애플리케이션의 검색 기능이 얼마나 잘 수행되는지 더 자세히 파악할 수 있습니다.

트래픽 분석 검색 추가

Azure AI Search 서비스의 포털 페이지에서 검색 트래픽 분석 페이지를 열어 이 원격 분석 패턴을 따르는 치트 시트에 액세스합니다. 이 페이지에서 Application Insights 리소스를 선택하거나 만들고, 계측 키를 가져오고, 솔루션에 맞게 조정할 수 있는 코드 조각을 복사하고, 패턴에 반영된 스키마를 통해 빌드된 Power BI 보고서를 다운로드할 수 있습니다.

Application Insights를 설정하기 위한 포털 명령 및 페이지의 스크린샷

1단계: Application Insights 설정

기존 Application Insights 리소스를 선택하거나 리소스가 없는 경우 하나 만듭니다.

일부 Visual Studio 프로젝트 형식에 대해 작동하는 바로 가기는 다음 단계에서 반영됩니다.

예를 들어 이러한 단계는 정적 웹앱 검색 추가에서 클라이언트를 사용합니다.

  1. Visual Studio에서 솔루션을 엽니다.

  2. 프로젝트 메뉴에서 연결된 서비스>>Azure Application Insights 추가를 선택합니다.

  3. 종속성에 연결에서 Azure Application Insights를 선택한 다음을 선택합니다.

  4. Azure 구독, Application Insights 리소스를 선택한 다음 마침을 선택합니다.

이 시점에서 애플리케이션은 애플리케이션 모니터링을 위해 설정됩니다. 즉, 클라이언트 앱의 모든 페이지 로드가 기본 메트릭으로 추적됩니다.

이 바로 가기가 작동하지 않는 경우 Application Insights 서버 쪽 원격 분석 사용 설정을 참조하세요.

2단계: 계측 추가

클라이언트 애플리케이션에 계측 코드를 추가합니다. Azure Portal의 검색 트래픽 분석 페이지에서는 애플리케이션 코드에 붙여넣을 수 있는 코드 조각을 제공합니다.

원격 분석 클라이언트 만들기

Application Insights에 이벤트를 보내는 개체를 만듭니다. 여기서 C# 및 JavaScript 변형으로 표현된 브라우저에서 실행되는 서버 쪽 애플리케이션 코드 또는 클라이언트 쪽 코드에 계측을 추가할 수 있습니다. 다른 언어는 지원되는 플랫폼 및 프레임워크를 참조하세요.

서버 쪽 원격 분석은 애플리케이션 계층(예: Azure에서 웹 서비스로 실행되거나 회사 네트워크의 온-프레미스 앱)에서 메트릭을 캡처합니다. 서버 쪽 원격 분석은 검색 및 클릭 이벤트, 결과의 문서 위치 및 쿼리 정보를 캡처합니다. 단, 데이터 컬렉션의 범위는 해당 계층에서 사용할 수 있는 모든 정보로 한정됩니다.

클라이언트에는 쿼리 입력을 조작하거나, 탐색을 추가하거나, 컨텍스트를 포함하는 다른 코드가 있을 수 있습니다(예: 홈페이지와 제품 페이지에서 시작된 쿼리). 솔루션에 대해 설명하는 경우 원격 분석에서 추가 세부 정보를 반영하도록 클라이언트 쪽 계측을 선택할 수 있습니다. 이 추가 세부 정보를 수집하는 방법은 이 패턴의 범위를 벗어나지만 웹 페이지에 대한 Application Insights를 검토하여 해당 결정에 대한 도움을 받을 수 있습니다.

Application Insights 페이지 또는 Azure AI Search의 검색 트래픽 분석 페이지에서 Azure Portal에서 계측 키를 가져올 수 있습니다.

// Application Insights SDK: https://www.nuget.org/packages/Microsoft.ApplicationInsights.Web 

var telemetryClient = new TelemetryClient();
telemetryClient.InstrumentationKey = "0000000000000000000000000000";

검색 이벤트 로그

사용자는 검색 요청을 실행할 때마다 Application Insights 사용자 지정 이벤트에 다음 스키마를 사용하여 검색 이벤트로 기록해야 합니다. 사용자가 생성한 검색 쿼리만 기록해야 합니다.

  • SearchServiceName: (문자열) 검색 서비스 이름
  • SearchId: (guid) 검색 쿼리의 고유 식별자(검색 응답에 제공됨)
  • IndexName: (문자열) 쿼리할 검색 서비스 인덱스
  • QueryTerms: (문자열) 사용자가 입력한 검색어
  • ResultCount: (int) 반환된 문서의 수(검색 응답에 제공됨)
  • ScoringProfile: (문자열) 사용된 점수 매기기 프로필의 이름(있는 경우).

참고 항목

검색 쿼리에 $count=true를 추가하여 사용자가 생성한 쿼리 수를 요청합니다. 자세한 내용은 문서 검색(REST)을 참조하세요.

var properties = new Dictionary <string, string> {
	{"SearchServiceName", <SEARCH SERVICE NAME>},
	{"SearchId", <SEARCH ID>},
	{"IndexName", <INDEX NAME>},
	{"QueryTerms", <SEARCH TERMS>},
	{"ResultCount", <RESULTS COUNT>},
	{"ScoringProfile", <SCORING PROFILE USED>}
};

telemetryClient.TrackEvent("Search", properties);

클릭 이벤트 로그

사용자가 문서를 클릭할 때마다 검색 분석을 위해 신호를 기록해야 합니다. Application Insights 사용자 지정 이벤트를 사용하여 다음 스키마로 이러한 이벤트를 기록합니다.

  • ServiceName: (문자열) 검색 서비스 이름
  • SearchId: (guid) 관련 검색 쿼리의 고유 식별자
  • DocId: (문자열) 문서 식별자
  • Position: (int) 검색 결과 페이지의 문서 순위

참고 항목

위치는 애플리케이션의 카디널 순서를 참조합니다. 이 숫자가 항상 같다면 이 숫자를 자유롭게 설정하여 비교할 수 있습니다.

var properties = new Dictionary <string, string> {
	{"SearchServiceName", <SEARCH SERVICE NAME>},
	{"SearchId", <SEARCH ID>},
	{"ClickedDocId", <CLICKED DOCUMENT ID>},
	{"Rank", <CLICKED DOCUMENT POSITION>}
};

telemetryClient.TrackEvent("Click", properties);

3단계: Power BI에서 분석

앱을 계측하고 애플리케이션이 Application Insights에 올바르게 연결되었는지 확인했으면 작성한 미리 정의된 보고서 템플릿을 다운로드하여 Power BI Desktop에서 데이터를 분석합니다. 보고서에는 검색 트래픽 분석을 위해 캡처된 추가 데이터를 분석하는 데 유용한 미리 정의된 차트와 테이블이 포함되어 있습니다.

  1. 검색 서비스 페이지의 Azure Portal의 설정아래에서 검색 트래픽 분석을 선택합니다.

  2. Power BI Desktop 가져오기를 선택하여 Power BI를 설치합니다.

  3. Power BI 보고서 다운로드를 선택하여 보고서를 가져옵니다.

  4. 보고서가 Power BI Desktop에서 열리고 Application Insights에 연결하고 자격 증명을 제공하라는 메시지가 표시됩니다. 연결 정보는 Application Insights 리소스에 대한 Azure Portal 페이지에서 찾을 수 있습니다. 자격 증명의 경우 포털 로그인에 사용하는 것과 동일한 사용자 이름 및 암호를 제공합니다.

    Power BI에서 Application Insights에 연결하는 방법을 보여 주는 스크린샷

  5. 로드를 선택합니다.

이 보고서에는 검색 성능과 관련성을 향상시키기 위해 정보에 기반한 합리적 의사 결정을 내리는 데 도움이 되는 차트와 테이블이 포함되어 있습니다.

메트릭에 포함되는 항목은 다음과 같습니다.

  • 볼륨 및 가장 인기 있는 용어-문서 쌍 검색: 동일한 문서를 클릭하게 되는 용어로, 클릭 수를 기준으로 정렬됩니다.
  • 클릭 없이 검색: 클릭을 등록하지 않는 상위 쿼리를 일컫는 용어

다음 스크린샷에서는 모든 스키마 요소를 사용한 경우 기본 제공 보고서가 어떻게 표시되는지 보여 줍니다.

사용 가능한 모든 스키마 요소를 사용하는 기본 제공 보고서를 보여 주는 스크린샷

다음 단계

검색 애플리케이션을 계측하여 검색 서비스에 대한 강력하고 통찰력 있는 데이터를 가져옵니다.

Application Insights에 대한 자세한 내용을 확인하고, 가격 페이지를 방문하여 다양한 각 서비스 계층에 대해 자세히 알아볼 수 있습니다.

보고서를 만드는 방법에 대해 자세히 알아봅니다. 자세한 내용은 Power BI Desktop 시작을 참조하세요.