Voir l'article en anglais sur le wiki
[Valide pour la version 1.3]
Peu importe le moteur de recherche que vous configurez avec CA, la syntaxe de recherche Lucene sera toujours utilisée pour définir les expressions de recherche. Ceci permet de fournir une expérience cohérente pour les utilisateurs même avec différentes implémentations et permet également de mettre en oeuvre la syntaxe Lucene, bien définie et largement adoptée. Notez que tous les moteurs de recherche ne supportent pas tous les aspects de la syntaxe Lucene. En général, vous pouvez considérer que les fonctionnalités de base sont largement supportées : la recherche textuelle, la limitation au niveau d'un champ, le parenthésage et les booléens. Des fonctionnalités tels que la pondération, la correspondance partielle et les recherches sur des intervalles peuvent ne pas être disponible sur les moteurs de recherche qui ne sont pas basés sur Lucene (par exemple des moteurs autres que PHP Lucene et Apache SOLR). A l'opposé, d'autres fonctionnalités comme la conversion des unités lors de la recherche sur les dimensions longueur et largeur sont (actuellement) uniquement supportées dans le moteur MySQLFullText.
Recherche plein texte
Pour chercher à travers tous les champs indexés de la base de donnée (tels que définis dans le fichier de configuration search_indexing.conf), saisissez simplement un ou plusieurs mots. Selon le moteur de recherche utilisé, votre recherche peut comprendre des variantes (les suffixes retirés avant une comparaison avec l'index des mots) pour améliorer les résultats. La plupart des moteurs retourneront des résultats uniquement si tous les mots spécifiés sont présents, mais certains peuvent employer une logique propre pour retourner des résultats partiels repérés comme pertinents.
Limiter votre recherche à un champ spécifique
Si vous voulez restreindre votre recherche à un champ spécifique dans la base de données CA, utilisez le nom de la table et le champ séparés par un point, comme ici :
<table>.<field> (ex. ca_object_labels.name)
Une requête sous la forme de
ca_object_labels.name:Rollercoasters
retournera uniquement des objets dont le label (par exemple leur titre) contient le mot rollercoasters
Remarquez que ceci s'applique uniquement aux champs "intrinsèques" qui sont encodés en dur dans la base de données. Pour simplifier, ces champs sont toujours présentés quelle que soit votre configuration de CA - même si vous ne les utilisez pas. Il y a uniquement quelques champs de ce type d'usage courant : les champs labels (pour ca_objects, ca_entities...), les identifiants (idno), et les champs quantité et unités de la quantité, extent et extent_units (pour ca_objects et ca_object_lots).
Chercher par début d'identifiant
idno:2019*
Limiter votre recherche à des éléments de métadonnées spécifiques
Les éléments de metadonnees sont des champs de données spécifiques à votre installation. Ils peuvent exister ou non dans d'autres installations. Y chercher des informations est similaire à la recherche sur les champs intrinsèques.
<table>.<nom d'élément ou identifiant> (ex. ca_objects.inscription_sur_cadre pour chercher les éléments ''inscription_sur_cadre'' attachés à l'objet)
ou
ca_objects.<nom d'élément ou identifiant>(ex. ca_objects.inscription_sur_cadre)
Vous pouvez consulter une liste de toutes les métadonnées (et leurs codes) disponibles dans votre configuration via l'éditeur de métadonnées disponible sous "Configuration système" dans le menu "Gérer". (Note : seuls les administrateurs système ont accès à cet éditeur).
Dans tous les moteurs, vous pouvez effectuer une recherche texte sur une métadonnée. Dans certains moteurs - et spécifiquement le moteur MysqlFulltext qui défini par défaut lors de l'installation - vous pouvez également réaliser des recherches spécialisées sur certains types d'éléments. Ces recherches sont décrites dans la section suivante.
Chercher des dates
Pour chercher sur une date ou sur une plage de dates, affinez simplement votre recherche à une métadonnée de type date/heure et cherchez ensuite la date désirée, à l'aide d'un des formation définis sur la page Formats de date et d'heure. Vous pouvez utiliser n'importe quel format supporté, et n'importe quelle précision - le moteur de recherche trouver toute date (voir toute heure) qui fasse partie de la plage de date indiquée. La correspondance est par défaut très large : tous les items qui avec n'importe quel chevauchement seront renvoyés. Vous pouvez les restreindre aux items dont les dates sont complètement comprises dans la plage indiquée en ajoutant un dièse ("#") à votre recherche. Par exemple "#10 mai 2005"
Chercher des longueurs et des largeurs
Pour chercher sur une longueur ou une largeur, limitez votre recherche à une métadonnée de largeur ou de longueur et indiquez la dimension souhaitée avec l'unité. Vous devez spécifier une unité - il n'y a pas de préférence d'unité de mesure par défaut. Si vous devez trouver des items qui correspondent à une dimension, cherchez uniquement la quantité souhaitée. CA convertira cette quantité dans l'unité requise pour la comparaison, donc même si un item a été mesuré en inches, une recherche métrique le trouvera - bien sûr si ces dimensions correspondent.
ca_objects.width:12in
Vous pouvez utiliser à peu près toutes abbréviation d'unité indiquée parmi les Formats de saisie des dimensions. Quelques unes comme " pour les inches et ' pour les pieds (feet) ont une signification spéciale dans la syntaxe de recherche Lucene et ne doivent pas être utilisés.
Si vous voulez chercher des items dans une plage de dimensions, spécifiez les limites hautes et basses de dimension avec leur unité. Ces valeurs limites devront être séparées avec le mot "to" et être entourées de crochets ("[]"). Ne mettez pas d'espace entre la quantité et l'unité. Par exemple :
ca_objects.width:[12in to 24in]
va trouver tous les objets avec une largeur entre 12 et 24 pouces (y compris). Notez qu'il n'y a pas d'espace entre "12" et "in" et "24" et "in"
Chercher des nombres
Chercher les nombres est similaire à la recherche sur les mesures, sauf qu'il n'y a pas d'unité nécessaire. Pour rechercher un nombre entier ou une valeur décimale, restreignez votre recherche à l'élément et spécifier le nombre soit de manière unitaire, soit sous la forme d'une plage de valeurs. Par exemple, pour trouver les objets avec une valeur user_ranking de 5 :
ca_objects.user_ranking:5
Pour trouver des objets avec des estimations utilisateurs [user_ranking] entre 1 et 5 (inclus) :
ca_objects.user_ranking:[1 to 5]
Chercher un montant financier
Chercher sur des devises est similaire à une recherche numérique, sauf que pour celle-ci un type de devise est requis. Pour chercher une valeur, restreignez votre recherche à un élément et spécifiez la valeur soit comme une valeur unique soit comme une étendue de valeurs. Le montant doit être préfixé avec un code à 3 lettres (par ex. EUR pour euros, USD pour dollars US) ou un des symboles supportés ($, ¥, £ ou €). Par exemple, pour trouver les objets avec une valeur valeur_evaluation de $500 :
ca_objects.valeur_evaluation:$500
Pour trouver des objets dont l'attribut valeur_evaluation est de 500 $ ou moins :
ca_objects.valeur_evaluation:[$0 to $500]
Chercher des emplacements géographiques
Lors d'une recherche sur des emplacements géographiques, vous avez deux choix. Le premier est de chercher dans une zone géographique définie par deux paires de coordonnées latitude/longitude ; le second est de chercher tout ce qui se trouve à une distance définie d'un point défini par ses latitude/longitude.
Pour chercher dans une zone géographique :
ca_objects.georeference:ca_objects.georeference:"[40.341,-71.011 to 45.322, -75.963]"
Remarquez que les lagitudes et longitudes doivent être décimales et séparées avec les caractères "to", " - ", ou ".." ; l'ensemble doit être entouré à la fois de crochets ("[" et "]") et de guillemets. Si vous n'utilisez pas les guillemets, seule la partie située avant le premier espace sera reconnue comme des coordonnées géographiques, et ce n'est pas ce que vous voulez.
Pour chercher une zone au sein d'un rayon spécifique depuis un point, utilisez ce genre de recherche :
ca_objects.georeference:ca_objects.georeference:"[40.5759250,-73.9911350 ~ 5km]"
Comme avec la recherche dans une zone géographique, saisissez l'expression entre crochets et guillemets. La distance maximum depuis le point peut être spécifiée dans n'importe quelle unité de mesure acceptée par le type d'attribut "Longueur". La requête ci-dessous trouvera tout ce qui a été géocodé à moins de 5 km du point spécifié.
Rechercher des valeurs vides
Depuis la version 1.4 vous pouvez chercher des item qui n'ont aucun contenu dans un champ spécifique à l'aide du terme de recherche [BLANK]. Le terme [BLANK] doit être utilisé avec la spécification d'un champ. L'exemple suivant retournera les objets dont la description n'a pas été remplie :
ca_objects.description:[BLANK]
Points d'accès
Saisir ca_objects.inscription_sur_cadre:graffiti à chaque fois que vous cherchez le mot "graffiti" dans l'élément "inscription_sur_cadre" peut devenir un peu pénible, et n'est pas très esthétique à la relecture. Pour simplifier la spécifier des champs et les recherches spécifiques, CA permet de définir des "points d'accès". Les points d'accès sont simplement des listes de spécifications de champs et d'éléments, définies dans le fichier de configuration search_indexing.conf, qui peuvent être utilisées à la place de la recherche habituelle. Par exemple, vous pouvez effectuer la recherche 'inscription_sur_cadre' comme ceci :
picText:grafitti
en supposant qu'un point d'accès comme celui-ci a été défini dans le fichier search_indexing.conf:
picText = { fields = [ca_objects.texte_im_bild] },
Combinaison booléenne
Les expressions de recherche peuvent être combinées à l'aide des opérateurs standards booléens "AND" et "OR". Utilisez les simplement entre les expressions de recherche à connecter avec les mots AND ou OR. Par exemple, la recherche
ca_objects.appraisal_value:[$0 to $500] AND ca_objects.description:broken
va trouver tous les objets comprenant à la fois une valeur d'estimation de 500 $ ou moins et le mot "broken" dans leur description. Au contraire la requête
ca_objects.appraisal_value:[$0 to $500] OR ca_objects.description:broken
va retourner les objets contenant SOIT une valeur de $500 ou moins SOIT le mot "cassé" dans leur description.
Si vous ne saisissez pas AND/OR entre deux expressions de recherche, AND est implicite.
Troncature
L'asterisque ("*") est utilisé comme caractère "joker". Il remplace n'importe quel texte. Les joker peuvent être utilisés uniquement à la fin d'un mot, pour trouver les mots qui commencent par les caractères saisis avant l'étoile. Par exemple :
wri*
retournera les enregistrements associés dont les mots commencent par le texte "wri". Notez que si votre installation a la recherche "stemming" activée, de nombreux mots de la langue anglaise vont automatiquement avoir leur suffixe tronqué et un joker ajouté. Ainsi, avec "stemming", une recherche pour "baking" ou "baked" ou "baker" vont être transformés en "bak*". Le "stemmer" est assez intelligent pour ne pas tenter d'ajouter une troncature à un terme auquel vous avez déjà vous-même ajouté une troncature. Si vous cherchez "bake*", le "stemmer" laissera l'expression telle que.
Chercher par dates de création et de modification
created:"April 12 2012"
ou
created:"4/12/2012"
ou avec toute autre expression valide de date/temps. Toute plage temporelle fonctionnera, y compris celles qui sont précises à la minute ou celle qui le sont au niveau d'un mois ou d'une année.
Vous pouvez limiter le nombre d'éléments retournés à ceux créés ou modifiés par un utilisateur spécifique en ajoutant un nom d'utilisateur valide à un point d'accès. Par exemple, pour trouver les objets modifiés par l'utilisateur "catherine" en avril 2012, vous pouvez chercher à l'aide de :
modified.catherine:"4/2012"
Veuillez noter que le nom d'utilisateur est séparé du point d'accès par un point (".") et que le nom d'utilisateur indiqué est son login, pas son prénom, ni son nom. Le login d'un utilisateur peut être son adresse email, mais ce n'est pas toujours le cas.
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.