função SCORE

A função SCORE procura um índice de pesquisa de texto usando critérios que você especifica em um argumento de pesquisa e retorna uma pontuação de relevância que mede o quão bem um documento satisfaz a consulta como comparado com os outros documentos da coluna.

Sintaxe da Função

Read syntax diagramSkip visual syntax diagramSCORE(column-name,search-argument ,string-constant1)
Notes:
  • 1 string-constant must conform to the rules for search-argument-options.
search-argument-options
Read syntax diagramSkip visual syntax diagram1 QUERYLANGUAGE=localeRESULTLIMIT=valueSYNONYM=OFFON
Notes:
  • 1 You cannot specify the same clause more than once.
O esquema é SYSIBM.

Parâmetros de Função

column-name
Um nome qualificado ou não qualificado de uma coluna que possua um índice de pesquisa de texto que deve ser pesquisado. A coluna deve existir na tabela ou visualização identificada na cláusula FROM no enunciado e na coluna da tabela, ou na coluna da tabela base subjacente da visualização, deve ter um índice de pesquisa de texto associado (SQLSTATE 38H12). A expressão subjacente da coluna de uma visualização deve ser uma simples referência de coluna à coluna de uma tabela subjacente, diretamente ou através de outra, vista aninhada.
search-argumento
Uma expressão que retorna um valor que é um valor string (exceto um LOB) que contém os termos a serem pesquisados e não são todos os espaços em branco ou a string vazia (SQLSTATE 42815). O valor string que resulta da expressão deve ser menor ou igual a 4096 bytes (SQLSTATE 42815). O valor é convertido em Unicode antes de ser usado para pesquisar o índice de pesquisa de texto. O número máximo de termos por consulta não deve exceder 1024 (SQLSTATE 38H10).
string-constante

Uma constante de cadeia que especifica as opções de argumento de pesquisa que estão em vigor para a função.

As opções que você pode especificar como parte do search-argumento-options são as seguintes:

QUERYLANGUAGE = localidade
Especifica a localidade que o mecanismo de pesquisa de texto do Db2 usa ao realizar uma pesquisa de texto em uma Db2® coluna de texto. O valor pode ser qualquer um dos locales suportados. Se você não especificar QUERYLANGUAGE, o padrão é o locale do índice de pesquisa de texto. Se o parâmetro LANGUAGE do índice de pesquisa de texto for AUTO, o valor padrão para QUERYLANGUAGE é en_US.
RESULTLIMIT = valor

Se o otimizador optar por um plano que chama o mecanismo de busca para cada linha do conjunto de resultados para obter o SCORE, então a opção RESULTLIMIT não tem efeito sobre o desempenho. No entanto, se o motor de busca for chamado uma vez para todo o conjunto de resultados, RESULTLIMIT age como uma cláusula FETCH FIRST.

Ao usar várias pesquisas de texto que especificam RESULTLIMIT na mesma consulta, use o mesmo search-argumento. Se você usar valores diferentes search-argumento , você pode não receber os resultados que você espera.

Para os índices de texto particionados, o limite de resultados é aplicado a cada partição separadamente.

Nota: Se o número de resultados for uma questão, limite o número de resultados por meio de um refinamento dos termos de pesquisa, em vez de utilizar RESULTLIMIT. Como RESULTLIMIT retorna no máximo o número especificado de resultados sem consideração de suas pontuações, os documentos de mais alto escalão podem não ser incluídos.
SINÔNIMO = OFF | ON
Especifica se deve utilizar um dicionário de sinônimos que esteja associado ao índice de pesquisa de texto. O padrão é OFF. Para usar sinônimos, inclua o dicionário de sinônimos no índice de pesquisa de texto usando a Ferramenta de Sinônimos.
Desativado
Não use um dicionário de sinônimos.
ATIVADO
Utilize o dicionário de sinônimos associado ao índice de pesquisa de texto.

O resultado da função é um número de floatinga de dupla precisão. Se o segundo argumento pode ser nulo, o resultado pode ser nulo; se o segundo argumento for nulo, o resultado será nulo. Se o terceiro argumento for nulo, o resultado será como se você não especificou o terceiro argumento.

O resultado é maior que 0 mas menor que 1 se a coluna contém uma correspondência para os critérios de pesquisa especificados pelo argumento de pesquisa. Quanto mais freqüentemente uma correspondência for encontrada, maior será o valor do resultado. Se a coluna não conter uma correspondência, o resultado será 0.

SCORE é uma função não determinística.

Nota: Você deve tomar etapas adicionais ao usar marcadores de parâmetro como um argumento de pesquisa dentro das funções de pesquisa de texto. Os marcadores de parâmetros não possuem um tipo quando pré-compilados em programas JDBC e ODBC , mas o argumento de pesquisa nas funções de pesquisa de texto deve resolver a um valor string. Como o tipo desconhecido do marcador de parâmetro não pode ser resolvido a um valor string (SQLCODE -418), você deve lançar explicitamente o marcador de parâmetro para o tipo de dados VARCHAR.

Exemplo

  • A consulta a seguir é usada para gerar uma lista de funcionários em ordem de como seus currículos satisfazem a consulta "programador AND (java OR cobol)", juntamente com um valor de relevância que é normalizado entre 0 e 100:
    	SELECT EMPNO, 
    		INTEGER(SCORE(RESUME, 
    			'programmer AND (java OR cobol)') * 100) AS RELEVANCE 
    			FROM EMP_RESUME 
    			WHERE RESUME_FORMAT = 'ascii' 
    				AND CONTAINS(RESUME, 'programmer AND (java OR cobol)') = 1 
    		ORDER BY RELEVANCE DESC

Observações de uso

  • O valor SCORE reflete a relevância relativa de um documento quando comparado com o valor SCORE de todos os documentos da mesma coleção de índice de texto. Para um banco de dados particionado um índice de texto pode consistir em várias coleções, entretanto as pontuações de documentos não são normalizadas entre partições. Comparar ou classificação de valores SCORE em coleções de índice de texto não é, portanto, significativo e não fornece uma medida adequada de relevância para documentos em um índice de texto particionado.