GlideSPSearchAnalytics - Global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 7 min. de leitura
  • . GlideSPSearchAnalytics A API fornece métodos para gerar análise de pesquisa personalizada ServiceNow widgets de pesquisa.

    Por padrão, as tabelas Eventos de pesquisa [sys_search_event] e Eventos de origem de pesquisa [sys_search_source_event] coletam dados de pesquisa de widgets de pesquisa do sistema de base. No entanto, os widgets de pesquisa personalizados não se beneficiam desse recurso. Use esta API no script do servidor de widgets de pesquisa personalizados em ambientes globais para enviar dados de pesquisa para as tabelas de eventos de pesquisa. Gerar sugestões de pesquisa relevantes para os usuários e a análise de pesquisa do monitor para entender o que os usuários estão pesquisando e se eles têm encontrado o que precisam.

    Esta API coleta os seguintes dados de pesquisa:
    • Termos pesquisados
    • Classificação de itens clicados
    • Filtros usados para refinar os resultados da pesquisa
    • Nomes de tabela e identificadores de registro da primeira página dos resultados da pesquisa
    • Resultados da pesquisa clicados, incluindo navegador e local

    Pesquisar sugestões é um recurso de ServiceNow AI Platform. Para obter mais informações, consulte Sugestões de pesquisa.

    GlideSPSearchAnalytics - publicar (carga de cadeia de caracteres)

    Envia dados de pesquisa para as tabelas Evento de pesquisa [sys_search_event], Evento de pesquisa por origem [sys_search_source_event] e Evento de sinal de pesquisa [sys_search_signal_event] para resultados de pesquisa ou para as tabelas Resultado de pesquisa clicado [sys_search_result_clicado] e Evento de resultado de sinal de pesquisa [sys_search_result_event] quando um usuário clica em um resultado de pesquisa.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    carga Cadeia de caracteres Carga JSON no formato Cadeia de caracteres que contém os dados de pesquisa a serem enviados para as tabelas Evento de pesquisa [sys_search_event], Evento de pesquisa por origem [sys_search_source_event] e Evento de sinal de pesquisa [sys_search_signal_event] para resultados de pesquisa ou para as tabelas Resultado de pesquisa clicado [sys_search_result_event] quando um usuário clica em um resultado de pesquisa. Estruture a carga como pares de chave-valor de acordo com o tipo de dados de pesquisa que você deseja coletar.
    • Colete dados quando o usuário pesquisar um termo:
      • consulta Cadeia de caracteres. A consulta que está sendo pesquisada.
      • portal_id Cadeia de caracteres. Sys_id do registro do portal da tabela Portais de serviço [sp_portal].
      • page_id Cadeia de caracteres. Sys_id do registro da página da tabela Páginas [sp_page].
      • results_per_source Matriz. Número de resultados retornados de cada origem de pesquisa.
        • source_id Cadeia de caracteres. Sys_id do registro de origem de pesquisa da tabela Fontes de pesquisa [sp_search_source].
        • number_of_results : Número. Número de resultados retornados da consulta para a origem de pesquisa específica.
      • ais_profile Cadeia de caracteres. Sys_id do perfil de pesquisa aplicado à pesquisa. Aplicável somente para pesquisas feitas com Pesquisa com IA mecanismo.
      • search_results Matriz. Resultados retornados na primeira página dos resultados da pesquisa.
        • record_id Cadeia de caracteres. Sys_id do registro do resultado da pesquisa.
        • table_name Cadeia de caracteres. Nome da tabela na qual o registro do resultado da pesquisa foi encontrado.
      • refinement_occurred : Booliano. Verdadeiro se o usuário filtrar os resultados da pesquisa; caso contrário, falso.
    • Colete dados quando um usuário refinar os resultados da pesquisa:
      • consulta Cadeia de caracteres. A consulta que está sendo pesquisada.
      • portal_id Cadeia de caracteres. Sys_id do registro do portal da tabela Portais de serviço [sp_portal].
      • page_id Cadeia de caracteres. Sys_id do registro da página da tabela Páginas [sp_page].
      • refinement_occurred : Booliano. Verdadeiro se o usuário filtrar os resultados da pesquisa; caso contrário, falso.
    • Colete a classificação do resultado da pesquisa que o usuário selecionou.
      • consulta Cadeia de caracteres. A consulta que está sendo pesquisada.
      • portal_id Cadeia de caracteres. Sys_id do registro do portal da tabela Portais de serviço [sp_portal].
      • click_rank : Número. Classificação do item selecionado pelo usuário. Por exemplo, se o usuário clicou no terceiro item em uma lista de resultados de pesquisa, o valor será 3 .
    • Colete informações sobre o resultado da pesquisa em que o usuário clica. Logs de dados para a tabela Resultado da pesquisa clicado [sys_search_result_clicado].
      • consulta Cadeia de caracteres. A consulta que está sendo pesquisada.
      • portal_id Cadeia de caracteres. Sys_id do registro do portal da tabela Portais de serviço [sp_portal].
      • page_id Cadeia de caracteres. Sys_id do registro da página da tabela Páginas [sp_page].
      • results_per_source Matriz. Número de resultados retornados de cada origem de pesquisa.
        • source_id Cadeia de caracteres. Sys_id do registro de origem de pesquisa da tabela Fontes de pesquisa [sp_search_source].
        • number_of_results : Número. Número de resultados retornados da consulta para a origem de pesquisa específica.
      • refinement_occurred : Booliano. Verdadeiro se o usuário filtrar os resultados da pesquisa; caso contrário, falso.
      • click_rank : Número. Classificação do item selecionado pelo usuário. Por exemplo, se o usuário clicou no terceiro item em uma lista de resultados de pesquisa, o valor será 3 .
      • browser_info Cadeia de caracteres. Registra o nome, a versão e a plataforma do navegador.
      • local Flutuante. Registra coordenadas de latitude e longitude do local do usuário.
      • result_clicked_sys_id Cadeia de caracteres. Sys_id do resultado selecionado pelo usuário.
      • label_description Cadeia de caracteres. Descrição do resultado selecionado pelo usuário.
      • source_table Cadeia de caracteres. Nome da tabela de origem que contém o resultado selecionado.
      • ais_doc_id Cadeia de caracteres. Nome separado por sublinhado da tabela de origem e sys_id do registro de resultado para cada resultado selecionado pelo usuário. Por exemplo, se o usuário clicou em um resultado da tabela Conhecimento [kb_knowledge], o valor será do formulário kb_knowledge_3020c9b14843210e9db4b08b9a712d . Aplicável somente para pesquisas feitas com Pesquisa com IA mecanismo.
    • Colete dados quando um usuário pesquisar um termo e coletar a classificação do resultado da pesquisa em que o usuário clicou:
      • consulta Cadeia de caracteres. A consulta que está sendo pesquisada.
      • portal_id Cadeia de caracteres. Sys_id do registro do portal da tabela Portais de serviço [sp_portal].
      • page_id Cadeia de caracteres. Sys_id do registro da página da tabela Páginas [sp_page].
      • results_per_source Matriz. Número de resultados retornados de cada origem de pesquisa.
        • source_id Cadeia de caracteres. Sys_id do registro de origem de pesquisa da tabela Fontes de pesquisa [sp_search_source].
        • number_of_results : Número. Número de resultados retornados da consulta para a origem de pesquisa específica.
      • ais_profile Cadeia de caracteres. Sys_id do perfil de pesquisa aplicado à pesquisa. Aplicável somente para pesquisas feitas com Pesquisa com IA mecanismo.
      • search_results Matriz. Resumo dos registros retornados na primeira página dos resultados da pesquisa.
        • record_id Cadeia de caracteres. Sys_id do registro do resultado da pesquisa.
        • table_name Cadeia de caracteres. Nome da tabela na qual o registro do resultado da pesquisa foi encontrado.
      • click_rank : Número. Classificação do item selecionado pelo usuário. Por exemplo, se o usuário clicou no terceiro item em uma lista de resultados de pesquisa, o valor será 3 .
      • ais_doc_id Cadeia de caracteres. Nome separado por sublinhado da tabela de origem e sys_id do registro de resultado para cada resultado selecionado pelo usuário. Por exemplo, se o usuário clicou em um resultado da tabela Conhecimento [kb_knowledge], o valor será do formulário kb_knowledge_3020c9b14843210e9db4b08b9a712d . Aplicável somente para pesquisas feitas com Pesquisa com IA mecanismo.
    Tabela 2. Retornos
    Tipo Descrição
    Nenhum(a)

    Este exemplo passa dados de pesquisa direta para as tabelas de análise de pesquisa.

    var searchObject = new GlideSPSearchAnalytics();
    var payload = {
      'query': 'how do i get a new computer',
      'portal_id': '81b75d3147032100ba13a5554ee4902b',
      'page_id': '87466b63c3223100c8b837659bba8feb',
      'results_per_source': [{
        'source_id': 'bf2c4c15b3a31300e64be12b86a8dcb7',
        'number_of_results': 2,
      }, {
        'source_id': 'c96eb1686721220023c82e08f585efff',
        'number_of_results': 1
      }],
      'refinement': false,
      'search_results': [{
        'record_id': 'KB Article 1',
        'table_name': 'knowledge'
      }, {
        'record_id': 'KB Article 2',
        'table_name': 'knowledge'
      }, {
        'record_id': 'Employee Help',
        'table_name': 'userportal'
      }]
    };
    var directSearchData = searchObject.publish(JSON.stringify(payload));

    Este exemplo coleta dinamicamente dados de pesquisa direta de um widget de pesquisa personalizado e os passa para as tabelas de análise de pesquisa.

    //client script
    var payload = {
      query: this.data.query,
      portal_id: this.data.portalID,
      page_id: this.data.pageID,
      results_per_source: getSearchSources(),
      refinement_occurred: false,
    };
    var payloadObject = {
      action: "TestAction",
      payload: payload,
    };
    c.server.get(payloadObject);
    //server script
    if (input && input.action === "TestAction") {
      input.action = "";
      var textSearchAnalytics = new GlideSPSearchAnalytics().publish(JSON.stringify(input.payload));
      return;
    }

    Este exemplo coleta dados clicados nos resultados de pesquisa diretos de um widget de pesquisa personalizado e os passa para a tabela de análise de pesquisa [sys_search_result_clicked].

    //client script
    function setUserLocationCoords(cb) {
      var onSuccess = function(pos) {
        return cb({
          latitude: pos.coords.latitude,
          longitude: pos.coords.longitude,
        });
      };
      var onError = function() {
        return cb({
          latitude: null,
          longitude: null,
        });
      };
      return window.navigator.geolocation.getCurrentPosition(onSuccess, onError, {
        enableHighAccuracy: true,
      });
    }
    
    function trackSearchResultClicked(resultClicked, rank) {
      if (!rank || rank < 1) return;
      var c = $scope;
      var query = _.get(c.data, "q");
      var results = _.get(c.data, "results", []);
      var result = results.find(function(e) {
        return e.primary.trim() === resultClicked.trim();
      });
      var description = result.name != null ? result.name : result.primary;
      var sourceTable = result.table != null ? result.table : null;
      var payloadObject = {
        action: "TestAction",
        payload: {
          query: query,
          portal_id: c.portal.sys_id,
          page_id: $scope.page && $scope.page.id,
          results_per_source: getSearchSources(c),
          refinement_occurred: false,
          click_rank: rank,
          browser_info: $window.navigator.userAgent,
          location: {},
          result_clicked_sys_id: result.sys_id,
          label_description: description,
          source_table: sourceTable,
        },
      };
      setUserLocationCoords(function(coords) {
        payloadObject.payload.location.latitude = coords.latitude;
        payloadObject.payload.location.longitude = coords.longitude;
        $window.spSearchAnalytics = {
          query: query,
          refinement_occurred: false,
        };
        c.server.get(payloadObject);
      });
    }
    // Event delegation for Updating click rank
    $(".panel").on("click", ".result-item a", function(e) {
      var index = $(e.currentTarget).parent().parent().data("index");
      var resultClicked = e.currentTarget.innerText;
      trackSearchResultClicked(resultClicked, index + 1);
    });
    // server script
    if (input && input.action === "TestAction") {
      input.action = "";
      var textSearchAnalytics = new GlideSPSearchAnalytics().publish(JSON.stringify(input.payload));
      return;
    }