검색 결과 개선

검색 요청에서 부스트 조건을 지정하여 검색 결과에서 특정 문서 순위를 올리거나 내릴 수 있습니다. 문서가 지정된 조건을 충족하면 부스트 값이 문서에 적용되고 결과가 그에 따라 정렬됩니다. 인기도 및 신선도와 같은 파라미터를 기반으로 결과를 정렬할 수 있게 해주는 커스텀 숫자 값과 타임스탬프 값도 지정할 수 있습니다.

검색 요청의 부스트 사양은 서빙 구성에 연결된 부스트 제어와 다릅니다. 부스트 제어에 대한 자세한 내용은 부스트 제어 정보를 참고하세요.

이 페이지에서는 다음과 같은 유형의 부스트 사양을 설명합니다.

고정된 조건을 사용하는 부스트

조건을 충족하는지 여부에 따라 고정된 양만큼 결과를 부스팅하려면 다음을 수행합니다.

  1. servingConfigs.search 요청을 보낼 때 boostSpec 필드에 부스트 사양을 지정합니다.

    {
      "boostSpec": {
        "conditionBoostSpecs": {
          "condition": "BOOST_CONDITION",
          "boost": BOOST_VALUE
        }
      }
    }
    

    사양에는 다음 파라미터가 포함됩니다.

    • BOOST_CONDITION: 텍스트 필터 표현식으로, 부스트를 적용할 문서를 선택합니다. 필터는 불리언 값으로 평가되어야 합니다.
    • BOOST_VALUE: [-1,1] 범위의 부동 소수점 숫자입니다. 값이 음수이면 결과가 강등되어 결과 하단에 표시됩니다. 값이 양수이면 결과가 승격하여 결과 상단에 표시됩니다.

사용 사례

데이터 스토어에 호텔 및 별점 평점에 대한 데이터가 포함되어 있다고 가정해 보겠습니다. 별점 평점이 3개 이상인 호텔을 부스팅하려고 합니다. 별표 평점은 star_rating 숫자 필드에서 제공됩니다. boostSpec에서 conditionstar_rating >= 3.0으로 지정하고 부스트 값을 0.7로 지정하여 star_rating이 3.0 이상인 모든 호텔을 같은 양만큼 부스팅할 수 있습니다.

{
  "boostSpec": {
    "conditionBoostSpecs": {
      "condition": "star_rating>=3.0",
      "boost": 0.7
    }
  }
}

커스텀 숫자 속성을 사용하는 부스트

제어점과 해당하는 부스트 값을 지정하여 조각별 선형 방식으로 커스텀 숫자 속성에 따라 결과를 부스팅할 수 있습니다.

커스텀 숫자 속성을 사용하여 부스트 사양을 지정하려면 다음을 수행합니다.

  1. servingConfigs.search 요청을 보낼 때 boostSpec 필드에 부스트 사양을 지정합니다.

    {
      "boostSpec": {
        "conditionBoostSpecs": {
            "condition": "BOOST_CONDITION",
            "boostControlSpec": {
              "attributeType": "NUMERICAL",
              "interpolationType": "LINEAR",
              "fieldName": "CUSTOM_ATTRIBUTE_FIELD_NAME",
              "controlPoints": [
                {
                  "attributeValue": "CUSTOM_ATTRIBUTE_VALUE_1",
                  "boostAmount": BOOST_AMOUNT_1
                },
                {
                  "attributeValue": "CUSTOM_ATTRIBUTE_VALUE_2",
                  "boostAmount": BOOST_AMOUNT_2
                }
              ]
            }
        }
      }
    }
    

    사양에는 다음 파라미터가 포함됩니다.

    • BOOST_CONDITION: 텍스트 필터 표현식으로, 부스트를 적용할 문서를 선택합니다. 필터는 불리언 값으로 평가되어야 합니다.
    • CUSTOM_ATTRIBUTE_FIELD_NAME: 값에서 부스트 양을 결정하는 커스텀 숫자 속성의 필드 이름입니다.
    • CUSTOM_ATTRIBUTE_VALUE: 문자열 데이터 유형이 있는 지정된 제어점에 대한 커스텀 속성의 숫자 값입니다. 예를 들면 "3.3" 또는 "12"입니다. 자세한 내용은 ControlPoint를 참조하세요.
    • BOOST_AMOUNT: [-1,1] 범위의 부동 소수점 숫자입니다. 값이 음수이면 결과가 강등되어 결과 하단에 표시됩니다. 값이 양수이면 결과가 승격하여 결과 상단에 표시됩니다. 지정된 제어점의 맞춤 속성에 매핑된 부스트 금액을 나타냅니다.

검색 결과의 문서가 지정된 조건을 충족하면 부스트 양이 다음과 같이 적용됩니다.

속성 값 부스트 양
첫 번째 제어점보다 작음 첫 번째 제어점의 부스트 양과 같음
제어점과 같음 매핑된 부스트 양과 같음
제어점 간 선형 보간법으로 계산됨
마지막 제어점보다 큼 마지막 제어점의 부스트 양과 같음

사용 사례

데이터 스토어에 호텔 및 별점 평점에 대한 데이터가 포함되어 있다고 가정해 보겠습니다. 별표 평점에 따라 호텔 검색 결과를 부스팅하려고 합니다. 다음과 같이 부스트 사양을 정의할 수 있습니다.

{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": "star_rating >= 3.0",
        "boostControlSpec": {
          "attributeType": "NUMERICAL",
          "interpolationType": "LINEAR",
          "fieldName": "star_rating",
          "controlPoints": [
            {
              "attributeValue": "3.5",
              "boostAmount": 0.25
            },
            {
              "attributeValue": "4.0",
              "boostAmount": 0.30
            },
            {
              "attributeValue": "4.5",
              "boostAmount": 0.32
            }
          ]
        }
    }
  }
}

이 시나리오에서는 검색 결과가 다음과 같이 부스팅됩니다.

별표 평점 부스트 양
3.5 이하 0.25
3.5~4.0 선형 보간법으로 계산된 0.25~0.30
4.0과 같음 0.30
4.0~4.5 선형 보간법으로 계산된 0.30~0.32
4.5 이상 0.32

신선도에 따른 부스트

제어점과 해당하는 부스트 값을 지정하여 조각별 선형 방식으로 날짜/시간 속성에 따라 결과를 부스팅할 수 있습니다.

커스텀 날짜/시간 속성을 사용하여 부스트 사양을 지정하려면 다음을 수행합니다.

  1. servingConfigs.search 요청을 보낼 때 boostSpec 필드에 부스트 사양을 지정합니다.

    {
      "boostSpec": {
        "conditionBoostSpecs": {
            "condition": "BOOST_CONDITION",
            "boostControlSpec": {
              "fieldName": "DATETIME_FIELD_NAME",
              "attributeType": "FRESHNESS",
              "interpolationType": "LINEAR",
              "controlPoints": [
                {
                  "attributeValue": "DURATION_VALUE_1",
                  "boostAmount": BOOST_AMOUNT_1
                },
                {
                  "attributeValue": "DURATION_VALUE_2",
                  "boostAmount": BOOST_AMOUNT_2
                }
              ]
            }
        }
      }
    }
    

    사양에는 다음 파라미터가 포함됩니다.

    • BOOST_CONDITION: 텍스트 필터 표현식으로, 부스트를 적용할 문서를 선택합니다. 필터는 불리언 값으로 평가되어야 합니다.
    • DATETIME_FIELD_NAME: 게시 날짜 또는 마지막 업데이트 날짜와 같은 커스텀 DATETIME 속성이나 사전 정의된 Google 추론 속성(예: datePublished)의 필드 이름입니다.
    • DURATION_VALUE: 문서 신선도를 결정하는 dayTimeDuration 데이터 유형의 기간 값입니다. 이는 검색이 수행된 날짜/시간과 문서의 커스텀 날짜/시간 속성의 날짜/시간 사이의 기간으로 계산됩니다. 기간 값은 [nD][T[nH][nM][nS]] 패턴의 ISO 8601 형식에 따라 지정되어야 합니다. 예를 들어 2024년 1월 1일부터 2024년 3월 1일까지의 기간을 59D로 표현할 수 있습니다. 마찬가지로 2.5일 기간을 2DT12H로 표현할 수 있습니다. 자세한 내용은 ControlPoint를 참조하세요.
    • BOOST_AMOUNT: [-1,1] 범위의 부동 소수점 숫자입니다. 값이 음수이면 결과가 강등되어 결과 하단에 표시됩니다. 값이 양수이면 결과가 승격하여 결과 상단에 표시됩니다. 지정된 제어점의 맞춤 날짜/시간 속성에 매핑된 부스트 양을 나타냅니다.

검색 결과의 문서가 지정된 조건을 충족하면 부스트 양이 다음과 같이 적용됩니다.

기간 값 부스트 양
첫 번째 제어점보다 작음 첫 번째 제어점의 부스트 양과 같음
지정된 제어점과 같음 매핑된 부스트 양과 같음
제어점 간 선형 보간법으로 계산됨
마지막 제어점보다 큼 마지막 제어점의 부스트 양과 같음

커스텀 날짜/시간 속성을 사용하는 사용 사례 예시

각 문서에 게시일이 있는 정형 데이터가 데이터 스토어에 포함되어 있다고 가정해 보겠습니다. 신선도에 따라 검색 결과를 부스팅하려고 합니다. 다음과 같이 부스트 사양을 정의할 수 있습니다.

{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": true,
        "boostControlSpec": {
          "fieldName": "publication_date",
          "attributeType": "FRESHNESS",
          "interpolationType": "LINEAR",
          "controlPoints": [
            {
              "attributeValue": "7D",
              "boostAmount": 0.40
            },
            {
              "attributeValue": "30D",
              "boostAmount": 0.37
            },
            {
              "attributeValue": "60D",
              "boostAmount": 0.32
            },
            {
              "attributeValue": "90D",
              "boostAmount": 0
            }
          ]
        }
    }
  }
}

이 시나리오에서는 검색 결과가 다음과 같이 부스팅됩니다.

최신 정보 부스트 양
7일 이하 0.40
7~30일 선형 보간법으로 계산된 0.40~0.37
30일과 같음 0.37
30~60일 선형 보간법으로 계산된 0.37~0.32
60일과 같음 0.32
60~90일 선형 보간법으로 계산된 0.32~0.0
90일 이상 0.0

관련성 필터로 부스트 양 조절

키워드 일치, 문맥 일치, 관련성과 같은 결과 순위에 영향을 미치는 요인 외에도 부스트 조건이 결과 순위에 큰 영향을 미칩니다. 따라서 특히 관련성 필터와 함께 boostSpec 필드를 사용할 때는 부스트 양을 신중하게 보정해야 합니다. 관련성 필터에 대한 자세한 내용은 문서 수준 관련성으로 검색 필터링을 참조하세요.

게시일이 서로 다른 문서가 여러 개 있다고 가정해 보겠습니다. 특정 쿼리의 경우 다음 표에는 부스트 양이나 관련성 필터를 구현하지 않은 절대 순위와 쿼리할 문서의 관련성을 나타냅니다.

문서 게시일 관련성 순위
A 2024년 2월 1일 높음 #1
B 2024년 3월 1일 높음 #2
C 2024년 4월 1일 가장 낮음 #3
D 2024년 5월 1일 보통 #4
E 2024년 6월 1일 낮음 #5

2024년 6월 6일에 다음 검색 조건을 검색 요청에 추가합니다.

  • 관련성 필터가 LOW로 설정됩니다.
  • 지난 31일 동안 게시된 문서는 0.7 값으로, 1주일 이상 지났지만 60일 미만인 문서는 0.6 값으로 부스팅되는 부스트 값입니다.

검색 출력에서 먼저 관련성을 기준으로 결과가 필터링된 후 부스트 양이 적용됩니다. 따라서 적용된 조건에 따라 결과에서 페이지 순위가 다음과 같이 변경됩니다.

문서 게시일 관련성 순위
E 2024년 6월 1일 낮음 #1
D 2024년 5월 1일 보통 #2
A 2024년 2월 1일 높음 #3
B 2024년 3월 1일 높음 #4

관련성 필터로 인해 관련성이 가장 낮은 결과가 필터링됩니다. 쿼리와 관련성이 낮은 문서는 큰 부스트 양으로 부스팅되므로 최상위 결과로 순위가 결정됩니다. 관련성이 높을수록 순위가 낮아집니다.

따라서 부스트 양을 정확한 낮은 값부터 시작하고 검색 출력에 따라 값을 조정하는 것이 좋습니다. 이 예시에서는 부스트 양을 0.1 이하로 시작하면 상단에 관련성이 높은 결과가 표시될 수 있습니다.

다음 단계

  • boostSpec 필드에 부스트 사양을 사용하여 검색 요청을 수행하세요.
  • 맞춤 검색 앱의 검색 품질에 대한 부스트 영향을 파악하려면 검색 품질을 평가하세요. 자세한 내용은 검색 품질 평가를 참조하세요.