Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
O conteúdo das propriedades do documento era anteriormente indistinguível do conteúdo do corpo do documento. Esta limitação restringia as consultas de texto integral a pesquisas genéricas em documentos inteiros. Agora, no entanto, você pode configurar um índice de texto completo para dar suporte à pesquisa com escopo de propriedade em propriedades específicas, como Autor e Título, para tipos de documentos suportados em um varbinary, varbinary(max) (incluindo FILESTREAM) ou coluna de dados binários image. Esta forma de pesquisa é conhecida como busca de imóveis.
O filtro associado ao (IFilter) determina se a pesquisa por propriedades é possível em um tipo específico de documento. Para alguns tipos de documento, o IFilter associado extrai algumas ou todas as propriedades definidas para esse tipo de documento, bem como o conteúdo do corpo do documento. Você pode configurar um índice de texto completo para dar suporte à pesquisa de propriedades somente em propriedades extraídas por um IFilter durante a indexação de texto completo. Entre os IFilters que extraem várias propriedades de documento estão os IFilters para tipos de documento do Microsoft Office (como .docx, .xlsxe .pptx). Por outro lado, o XML IFilter não emite propriedades.
Como a pesquisa Full-Text funciona com propriedades da pesquisa
Identificadores Internos de Propriedade
O Full-Text Engine atribui arbitrariamente a cada propriedade registrada um ID de propriedade interno, que identifica exclusivamente a propriedade nessa lista de pesquisa específica e que é específica para essa lista de propriedades de pesquisa. Portanto, se uma propriedade for adicionada a várias listas de propriedades de pesquisa, é provável que seu ID de propriedade interno seja diferente entre listas diferentes.
Quando uma propriedade é registada para uma lista de pesquisa, o motor Full-Text atribui arbitrariamente à propriedade um ID de propriedade interno . O ID de propriedade interno é um inteiro que identifica exclusivamente a propriedade nessa lista de propriedades de pesquisa.
A ilustração a seguir mostra uma exibição lógica de uma lista de propriedades de pesquisa que especifica duas propriedades, Title e Keywords. O nome da lista de propriedades para palavras-chave é "Tags". Essas propriedades pertencem ao mesmo conjunto de propriedades, cujo GUID é F29F85E0-4FF9-1068-AB91-08002B27B3D9. Os identificadores inteiros da propriedade são 2 para Title e 5 para Tags (Keywords). O Full-Text Engine mapeia arbitrariamente cada propriedade para um ID de propriedade interno que é exclusivo para a lista de propriedades de pesquisa. O ID da propriedade interna para a propriedade Title é 1 e o ID da propriedade interna para a propriedade Tags é 2.
É provável que o ID interno da propriedade seja diferente do identificador numérico da propriedade. Se uma determinada propriedade estiver registrada para várias listas de propriedades de pesquisa, um ID de propriedade interno diferente poderá ser atribuído para cada lista de propriedades de pesquisa. Por exemplo, o ID da propriedade interna pode ser 4 em uma lista de propriedades de pesquisa, 1 em outra, 3 em outra e assim por diante. Em contraste, o identificador inteiro da propriedade é intrínseco à propriedade e permanece o mesmo sempre que a propriedade é usada.
Indexação de Imóveis Registados
Depois que um índice de texto completo é associado a uma lista de propriedades de pesquisa, o índice deve ser preenchido novamente para indexar termos de pesquisa específicos da propriedade. Durante a indexação de texto completo, o conteúdo de todas as propriedades é armazenado no índice de texto completo junto com outro conteúdo. No entanto, ao indexar um termo de pesquisa encontrado em uma propriedade registrada, o indexador de texto completo também armazena o ID de propriedade interno correspondente com o termo. Por outro lado, se uma propriedade não for registrada, ela será armazenada no índice de texto completo como se fizesse parte do corpo do documento e terá um valor zero para o ID da propriedade interna.
A ilustração a seguir mostra uma exibição lógica de como os termos de pesquisa aparecem em um índice de texto completo associado à lista de propriedades de pesquisa mostrada na ilustração anterior. Um documento de exemplo, o Documento 1 contém três propriedades - Título, Autor e Palavras-chave - bem como o corpo do documento. Para as propriedades Título e Palavras-chave, que são especificadas na lista de propriedades de pesquisa, os termos de pesquisa são associados às suas IDs internas de propriedade correspondentes no índice de texto completo. Em contraste, o conteúdo da propriedade Author é indexado como se fizesse parte do corpo do documento. Isso significa que registrar uma propriedade aumenta um pouco o tamanho do índice de texto completo, dependendo da quantidade de conteúdo armazenado na propriedade.
Os termos de pesquisa na propriedade Title - "Favorito", "Biking" e "Trails" - estão associados ao ID de propriedade interno atribuído a Title para este índice, 1. Os termos de pesquisa na propriedade Palavras-chave - "bicicleta" e "montanha" - estão associados ao ID de propriedade interna atribuída a Etiquetas para este índice, que é 2. Para termos de pesquisa na propriedade Autor: "Jane" e "Doe", e termos de pesquisa no corpo do documento, o ID da propriedade interna é 0. O termo "ciclismo" ocorre na propriedade Title, na propriedade Keywords (Tags) e no corpo do documento. Uma pesquisa de uma propriedade para "andar de bicicleta" na propriedade Título ou Palavras-chave (Tags) retornaria este documento nos resultados. Uma consulta genérica de texto completo para "ciclismo" também retornaria este documento, como se o índice não estivesse configurado para pesquisa de propriedades. Uma pesquisa na propriedade por "andar de bicicleta" no campo Autor não devolveria este documento.
Uma consulta de texto completo com propriedade definida usa as IDs de propriedade internas registadas para a lista de propriedades de pesquisa atual do índice de texto completo.
Impacto da ativação da pesquisa de propriedades
Configurar um índice de texto completo para dar suporte à pesquisa em uma ou mais propriedades aumenta um pouco o tamanho do índice, dependendo do número de propriedades especificadas na lista de propriedades de pesquisa e do conteúdo de cada propriedade.
Ao testar corpus típicos de documentos do Microsoft Word, Excel e PowerPoint, configuramos um índice de texto completo para indexar propriedades de pesquisa típicas. A indexação dessas propriedades aumentou o tamanho do índice de texto completo em aproximadamente 5%. Prevemos que este aumento aproximado de tamanho será típico para a maioria dos corpus de documentos. No entanto, em última análise, o aumento de tamanho dependerá da quantidade de dados de propriedade em um determinado corpus de documento em relação à quantidade de dados gerais.
Criando uma lista de propriedades de pesquisa e habilitando a pesquisa de propriedades
Criação de uma lista de propriedades de pesquisa
Para criar uma lista de propriedades de pesquisa com o Transact-SQL
Use a instrução CREATE SEARCH PROPERTY LIST (Transact-SQL) e forneça pelo menos um nome para a lista.
Para criar uma lista de propriedades de pesquisa no Management Studio
No Pesquisador de Objetos, expanda o servidor.
Expanda Bancos de Dadose, em seguida, expanda o banco de dados no qual você deseja criar a lista de propriedades de pesquisa.
Expanda Armazenamentoe, em seguida, clique com o botão direito do rato em Pesquisar Listas de Propriedades.
Selecione Nova Lista de Propriedades de Pesquisa.
Especifique o nome da lista de propriedades.
Opcionalmente, especifique outra pessoa como proprietária da lista de propriedades.
Selecione uma das seguintes opções:
Criar uma lista de propriedades de pesquisa vazia
Criar a partir de uma lista de propriedades de pesquisa existente
Para obter mais informações, consulte Nova Lista de Propriedades de Pesquisa.
Selecione OK.
Adicionando propriedades a uma lista de propriedades de pesquisa
A pesquisa de propriedades requer a criação de uma lista de propriedades de pesquisa e a especificação de uma ou mais propriedades que você deseja tornar pesquisáveis. Quando você adiciona uma propriedade a uma lista de propriedades de pesquisa, a propriedade é registrada para essa lista específica. Para adicionar uma propriedade a uma lista de propriedades de pesquisa, você precisa dos seguintes valores:
GUID do conjunto de propriedades
Cada propriedade de pesquisa pertence a um único conjunto de propriedades que contém um grupo de propriedades relacionadas. Cada conjunto de propriedades é identificado por um identificador global exclusivo (GUID).
Identificador inteiro da propriedade
Cada propriedade de pesquisa possui um identificador que é exclusivo dentro do conjunto de propriedades. Para uma determinada propriedade, o identificador pode ser um inteiro ou uma cadeia de caracteres, no entanto, a pesquisa de texto completo suporta apenas identificadores inteiros.
Nome da propriedade
Este é o nome que os usuários especificarão em consultas de texto completo para pesquisar na propriedade. Um nome de propriedade pode conter espaços internos. O comprimento máximo é de 256 caracteres.
O nome da propriedade pode ser qualquer um dos seguintes:
O nome padronizado do Windows da propriedade, como System.Author ou System.Contact.HomeAddress.
Um nome amigável que é fácil para seus usuários se lembrarem. Algumas propriedades estão associadas a um nome amigável bem conhecido, como "Autor" ou "Endereço residencial", mas você pode especificar o nome mais apropriado para seus usuários.
Observação
Uma determinada combinação de GUID do conjunto de propriedades e identificador de propriedade deve ser exclusiva em uma determinada lista de propriedades de pesquisa. Isso significa que você não pode adicionar a mesma propriedade mais de uma vez com nomes ou descrições diferentes.
Descrição do imóvel (opcional)
Ao adicionar uma propriedade de pesquisa a uma lista de propriedades de pesquisa, você pode fornecer uma descrição opcional. Por exemplo, talvez você queira fornecer informações sobre uma propriedade que não é evidente a partir de seu nome, ou talvez queira descrever o conjunto de propriedades da propriedade.
Para obter valores para uma lista de propriedades de pesquisa
Para adicionar uma propriedade a uma lista de propriedades de pesquisa com o Transact-SQL
Use a instrução ALTER SEARCH PROPERTY LIST (Transact-SQL) com os valores obtidos usando um dos métodos descritos no artigo, Find Property set GUIDs and Property Integer IDs for Search Properties.
O exemplo a seguir demonstra o uso desses valores ao adicionar uma propriedade a uma lista de propriedades de pesquisa:
ALTER SEARCH PROPERTY LIST DocumentTablePropertyList
ADD 'Title'
WITH ( PROPERTY_SET_GUID = 'F29F85E0-4FF9-1068-AB91-08002B27B3D9', PROPERTY_INT_ID = 2,
PROPERTY_DESCRIPTION = 'System.Title - Title of the item.' );
Para adicionar uma propriedade a uma lista de propriedades de pesquisa no Management Studio
Utilize a caixa de diálogo Pesquisar Propriedades da Lista de Propriedades para adicionar e remover propriedades de pesquisa. Você pode encontrar Listas de Propriedades de Pesquisa no Explorador de Objetos sob o nó de Armazenamento do banco de dados associado.
Associando uma Lista de Propriedades de Pesquisa a um Índice de Full-Text
Para que um índice de texto completo dê suporte à pesquisa de propriedades nas propriedades registradas para uma lista de propriedades de pesquisa, você precisa associar a lista de propriedades de pesquisa ao índice e preencher novamente o índice. O preenchimento novo do índice de texto completo cria entradas de índice específicas da propriedade para termos de pesquisa em cada uma das propriedades registradas.
Enquanto o índice de texto completo permanecer associado a essa lista de propriedades de pesquisa, a consulta de texto completo poderá usar a opção PROPERTY do predicado CONTAINS para pesquisar propriedades registradas para essa lista de propriedades de pesquisa.
Se você alterar a lista de propriedades de pesquisa associada a um índice de texto completo, o índice deverá ser reconstruído para colocá-lo em um estado consistente. O índice é truncado imediatamente e fica vazio até que o processo de preenchimento completo seja executado. Para obter mais informações sobre como alterar a lista de propriedades de pesquisa causa a reconstrução do índice, consulte "Observações", em ALTER FULLTEXT INDEX (Transact-SQL).
Para associar uma lista de propriedades de pesquisa a um índice de texto completo com Transact-SQL
Utilize a instrução ALTER FULLTEXT INDEX (Transact-SQL) com a cláusula SET SEARCH PROPERTY LIST = <property_list_name>.
Para associar uma lista de propriedades de pesquisa a um índice de texto completo com o Management Studio
Especifique um valor para Lista de Propriedades de Pesquisa na página Geral da caixa de diálogo Propriedades do ÍndiceFull-Text.
Consultando propriedades de pesquisa com CONTAINS
A sintaxe básica CONTÉM para uma consulta de texto completo com escopo de propriedade é a seguinte:
SELECT column_name FROM table_name
WHERE CONTAINS ( PROPERTY ( column_name, 'property_name' ), '<contains_search_condition>' )
Por exemplo, a consulta a seguir pesquisa em uma propriedade indexada, Title, na coluna Document da tabela Production.Document do banco de dados AdventureWorks. A consulta retorna apenas documentos cuja propriedade Title contém a cadeia de caracteres Maintenance ou Repair
USE AdventureWorks2022;
GO
SELECT Document FROM Production.Document
WHERE CONTAINS ( PROPERTY ( Document, 'Title' ), 'Maintenance OR Repair')
GO
Este exemplo pressupõe que o IFilter do documento extrai sua propriedade Title, que a propriedade Title é adicionada à lista de propriedades de pesquisa e que a lista de propriedades de pesquisa está associada ao índice de texto completo.
Gerenciando listas de propriedades de pesquisa
Visualizar e alterar uma lista de propriedades de pesquisa
Para alterar uma lista de propriedades de pesquisa com o Transact-SQL
Use a instrução ALTER SEARCH PROPERTY LIST (Transact-SQL) para adicionar ou remover propriedades de pesquisa.
Para exibir e alterar uma lista de propriedades de pesquisa no Management Studio
No Pesquisador de Objetos, expanda o servidor.
Expanda Bancos de Dadose, em seguida, expanda a base de dados.
Expanda Storage.
Alargue Listas de Propriedades de Pesquisa para apresentar as listas de propriedades de pesquisa.
Clique com o botão direito do mouse na lista de propriedades e selecione Propriedades.
Na caixa de diálogo Editor de Lista de Propriedades de Pesquisa, use a grade de Propriedades para adicionar ou remover propriedades de pesquisa:
Para remover uma propriedade de documento, clique no cabeçalho da linha à esquerda da propriedade e pressione DEL.
Para adicionar uma propriedade de documento, clique na linha vazia na parte inferior da lista, à direita da *e insira os valores para a nova propriedade.
Para obter informações sobre esses valores, consulte Editor de Lista de Propriedades de Pesquisa. Para obter informações sobre como obter esses valores para propriedades definidas pela Microsoft, consulte Localizar GUIDs de conjunto de propriedades e IDs inteiros de propriedade para propriedades de pesquisa. Para obter informações sobre propriedades definidas por um fornecedor de software independente (ISV), consulte a documentação desse fornecedor.
Selecione OK.
Eliminar uma lista de propriedades de pesquisa
Não é possível soltar uma lista de propriedades de um banco de dados enquanto a lista estiver associada a qualquer índice de texto completo.
Para excluir uma lista de propriedades de pesquisa com o Transact-SQL
Use a instrução DROP SEARCH PROPERTY LIST (Transact-SQL).
Para excluir uma lista de propriedades de pesquisa no Management Studio
No Pesquisador de Objetos, expanda o servidor.
Expanda Bancos de Dadose, em seguida, expanda a base de dados.
Expanda Armazenamentoe, em seguida, expanda o nó Listas de Propriedades de Pesquisa.
Clique com o botão direito do rato na lista de propriedades que pretende eliminar e clique em Eliminar.
Selecione OK.
Ver também
Localizar GUIDs de conjuntos de propriedades e IDs inteiros de propriedade para propriedades de pesquisa
Configurar e gerir filtros de pesquisa