> Tech > Exemple de moteur de recherche documentaire

Exemple de moteur de recherche documentaire

Tech - Par iTPro - Publié le 24 juin 2010
email

Supposons que l'on veuille une table destinée à  recueillir tout le contenu d'un site Web peuplé en dynamique. Dans l'exemple qui suit, je vais créer une table SQL Server simple et un moteur de recherche documentaire à  utiliser sur cette table. Voici

le
contenu de la table:

 

Create table content (

Pagename varchar (20) not null primary key,

URL archar (30) not null,

Description text null,

Keywords varchar (4000) null)

 

Insérez les valeurs suivantes

 

INSERT content values ("home.asp","home.asp","This
is the home page","home,SQL")

GO

INSERT content values ("pagetwo.asp","/page2/pagetwo.asp","SQL
Server Mag is great","second")

GO

INSERT content values ("pagethree.asp","/page3/pagethree.asp","SQL
Server site is the greatest","third")

GO

 

La table ressemblera à  ceci :

 

Pagename URL Description Keywords

——– ——— ——————— ———

home.asp /home.asp This is the home page home,SQL

Pagetwo.asp /page2/page2.asp SQL Server Mag is great
second

Pagethree.asp /page3/page3.asp SQL Server site is the
greatest third

 

Ensuite, nous allons passer en revue les procédures de
mise en place de la recherche documentaire, permettre une recherche
documentaire sur chaque colonne, et peupler l’index.

Dans un premier temps, faisons quelques essais de
requêtes sur cette table, en utilisant quelques mots-clés de recherche.
Ouvrez le Query Analyzer de SQL Server 7.0 et essayez quelques unes des
requêtes ci-dessous.

 

Requête 1 (FREETEXT)

SELECT * FROM content WHERE freetext(*,"home")

 

Résultat:

Pagename URL Description Keywords

——– ——— ——————— ———

home.asp /home.asp This is the home page home,SQL

 

Cette requête recherche la chaîne "home"
dans toutes les colonnes autorisant une recherche documentaire

 

Requête 2 (FREETEXT)

SELECT * FROM content WHERE freetext(description,"Mag")

 

Résultat:

Pagename URL Description Keywords

——– ——— ——————— ———

Pagetwo.asp /page2/page2.asp SQL Server Mag is great
second

 

Cette requête recherche la chaîne "Mag"
dans la colonne Description

Requête 3 (FREETEXT)

SELECT * FROM content WHERE freetext(description,"SQL
Server")

Résultat:

Pagename URL Description Keywords

——– ——— ——————— ———

Pagetwo.asp /page2/page2.asp SQL Server Mag is great
second

Pagethree.asp /page3/page3.asp SQL Server site is the
greatest third

Bien qu’on puisse croire que cette requête recherche
la chaîne "SQL Server", elle recherche en fait soit
"SQL", soit "Server"

Requête 4 (FREETEXT)

SELECT * FROM content WHERE freetext(description,"the")

Résultat:

Server: Msg 7619, Level 16, State 1, Line 1

 

La requête ne contient que des mots ignorés. On
trouve "the" avec tous les autres mots ignorés, dans le fichier
\MSSQL7\FTDATA\SQLSERVER\CONFIG.

 

Requête 5 (CONTAINS)

SELECT * FROM content WHERE contains(*,"home")

Résultat:

Pagename URL Description Keywords

——– ——— ——————— ———

home.asp /home.asp This is the home page home,SQL

Tout comme la requête freetext, celle-ci recherche la
chaîne "home" dans toutes les colonnes autorisant une recherche
documentaire

Requête 6 (CONTAINS)

SELECT * FROM content WHERE contains(description,’
"Mag*" ‘)

Résultat:

Pagename URL Description Keywords

——– ——— ——————— ———

Pagetwo.asp /page2/page2.asp SQL Server Mag is great
second

Cette instruction recherche tous les mots commençant
par "Mag" dans la colonnes Description. Notez que l’astérisque
agit comme caractère de recherche générique ou de substitution, tout
comme le signe "%" le fait avec le mot-clé LIKE (pour que cela
fonctionne il faut mettre des quotes de chaque côté des double quotes).

Requête 7 (CONTAINS)

SELECT * FROM content WHERE contains(description,’
"*ag" ‘)

Résultat:

Pagename URL Description Keywords

——– ——— ——————— ———

Cette instruction ne ramène aucun résultat. On ne
peut pas utiliser d’astérisque comme caractère de recherche générique
en préfixe.

Requête 8 (CONTAINS)

SELECT * FROM content WHERE contains(description,’
"Mag*" Or "great*" ‘)

 

Résultat:

Pagename URL Description Keywords

——– ——— ——————— ———

Pagetwo.asp /page2/page2.asp SQL Server Mag is great
second

Pagethree.asp /page3/page3.asp SQL Server site is the
greatest third

 

Ce scan de recherche documentaire utilise OR, ce qui
permet de rechercher "Mag" ou "great". Cela fonctionne
également avec AND et AND NOT. Notez, là  aussi, les simples quotes
entourant l’instruction.

 

Requête 9 (CONTAINS)

SELECT * FROM content WHERE contains(description,’site
NEAR great’)

Résultat:

Pagename URL Description Keywords

——– ——— ——————— ———

Pagethree.asp /page3/page3.asp SQL Server site is the
greatest third

Cette requête sur la colonne Description retrouve
toutes les lignes pour lesquelles "site" se trouve près de
"great".

Requête 10 (CONTAINS)

SELECT * FROM content WHERE contains(description,’
formsof (inflectional, great) ‘)

Résultat:

Pagename URL Description Keywords

——– ——— ——————— ———

Pagetwo.asp /page2/page2.asp SQL Server Mag is great
second

Pagethree.asp /page3/page3.asp SQL Server site is the
greatest third

Cette instruction renvoie tous les résultats
comportant "great", greatest", "greater" etc…

 

Téléchargez gratuitement cette ressource

Comment cerner la maturité digitale de votre entreprise ?

Comment cerner la maturité digitale de votre entreprise ?

Conçu pour les directions IT et Métiers, ce guide vous permettra d'évaluer précisément vos processus de communication client, d'identifier vos lacunes et points d'inflexion pour établir un plan d’actions capable de soutenir durablement votre évolution. Bénéficiez maintenant d'une feuille de route complète.

Tech - Par iTPro - Publié le 24 juin 2010