Activation de la suspension et de la reprise dans une source Database
-
Dans la requête SQL, ajoutez ORDER BY dans les champs chronologiques du relevé SELECT :
-
Si la source prend en charge l'actualisation incrémentale
-
Les mêmes champs chronologiques doivent également être utilisés dans ORDER BY.
-
Si la source ne prend pas en charge l'actualisation incrémentale
-
-
Champ qui identifie de façon unique chaque entrée :
Si la clé primaire ne contient qu'un champ, sélectionnez ce champ. Toutefois, si une colonne contient un nombre séquentiel incrémenté par le DBMS (Database Management System) chaque fois qu'une nouvelle entrée est ajoutée, sélectionnez plutôt cette colonne.
-
Aucun champ qui identifie de façon unique chaque entrée :
Dans ce cas, n'importe quel champ peut être utilisé. Toutefois, pendant une reprise, les entrées qui ont été indexées avant la suspension pourraient être réindexées.
Exemple : Vous avez un tableau qui contient les douze mois de l'année, et vous sélectionnez la colonne de mois en tant que référence. Les valeurs de cette colonne ne sont pas uniques, car plusieurs rangées peuvent être associées au même mois. Pendant l'analyse du sixième mois, vous suspendez, ce qui n'indexe pas toutes les rangées du sixième mois. Lorsque vous résumez, le connecteur commencera à analyser dès la première rangée du sixième mois, ce qui réindexe les rangées qui ont déjà été indexées.
-
-
-
Ajoutez des attributs XML à l'élément Accessor du fichier de configuration :
-
OrderByFieldName
-
Spécifie le nom de la colonne dans laquelle ORDER BY est appliqué. Cet attribut doit être présent afin d'activer Suspendre/Reprendre.
-
OrderByFieldType
-
Spécifie le type de données.NET de cette colonne. Cet attribut n'est normalement pas exigé. Le connecteur tente automatiquement de déterminer le type de données en préparant la requête SQL - sans toutefois l'exécuter - et en regardant le schéma des résultats. Toutefois, si un DBMS spécifique ne prend pas en charge correctement ce processus, vous pouvez spécifier manuellement le type de données avec cet attribut. Voici les types permis :
-
short (entier signé 16-bit)
-
ushort (entier non signé 16-bit)
-
int (entier signé 32-bit)
-
uint (entier non signé 32-bit)
-
long (entier signé 64-bit)
-
ulong (entier non signé 64-bit)
-
float (nombre à virgule flottante simple précision)
-
double (nombre à virgule flottante double précision)
-
string (chaîne)
-
- IncrementalRefreshFieldName
-
Pour prendre en charge l'actualisation incrémentale et Suspendre/Reprendre, IncrementalRefreshFieldName doit contenir le même nom que OrderByFieldName.
Référez-vous à cet exemple pour un extrait d'un fichier de configuration pour une source où Suspendre/Reprendre et l'actualisation incrémentale sont activés :
<Mapping type="Orders"> <Accessor type="query" OrderByFieldName="OrderDate" OrderByFieldType="DateTime" IncrementalRefreshFieldName="OrderDate"> SELECT Shippers.CompanyName AS ShipperName, Orders.OrderID AS ID, Orders.CustomerID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Customers.CompanyName, Employees.LastName, Employees.FirstName FROM Orders, Shippers, Customers, Employees WHERE Orders.ShipVia = Shippers.ShipperID AND Orders.CustomerID = Customers.CustomerID AND Orders.EmployeeID = Employees.EmployeeID AND Orders.OrderDate >= ? ORDER BY Orders.OrderDate </Accessor> </Mapping>
Note : Pour la compatibilité descendante, le paramètre équivalent LiveIndexginFieldName des versions précédentes de CES (Coveo Enterprise Search) est toujours pris en charge dans CES 7.
-