Composants personnalisables de la requête Solr finale

Vous pouvez personnaliser les composants de la requête Solr finale à l'aide d'analyseurs de requête. Un analyseur de requête est un composant chargé d'analyser la requête textuelle et de la convertir en objets Lucene Query correspondants.

Les fonctions Requête maximale de disjonction (Dismax), Texte disjoint (zones multiples) et Correspondance maximale (score) permettent de rechercher chaque paire de zones ou de termes séparément. Ensuite, il combine les résultats pour calculer la valeur maximale des résultats.

ExtendedDisMax ajoute les fonctions suivantes au-dessus de Dismax :

Correspondance minimale

La correspondance minimale offre une flexibilité lorsque le type de recherche ANY est utilisé, où vous pouvez spécifier le nombre de mots clés de recherche doivent correspondre aux documents indexés. Un nombre indique le nombre de mots clés de requête à rechercher. Un nombre qui est formulé avec un pourcentage indique qu'un pourcentage de mots clés de requête doit correspondre. Par exemple :
  • 1 indique qu'au moins un mot clé de requête doit correspondre.
  • 2<80% 6<50% indique que, lorsque le nombre de mots clés est inférieur à 3, les deux mots clés doivent être trouvés dans le document. Lorsqu'il y a 3 à 6 mots clés, 80 % des mots clés doivent être trouvés dans le document. Lorsqu'il y a plus de 6 mots clés, 50 % des mots clés doivent être trouvés dans le document.

    Par exemple, si un client recherche 3 mots clés, 80 % des 3 mots clés est égal à 2,4. Une fois arrondis, les résultats correspondant à au moins 2 des 3 mots clés saisis sont renvoyés.

    Important : Vous devez utiliser le codage de caractères adéquat lorsque vous entrez des pourcentages dans un fichier. Par exemple :
    • Dans un fichier de fragment JSP, par exemple SearchSetup.jspf, le pourcentage précédent est saisi de la façon suivante : 2<80% 6<50%.
    • Dans le fichier wc-component.xml, comme dans ce cas, wc-component.xml, le pourcentage précédent est saisi de la façon suivante : 2&lt;80% 6&lt;50%.
Pour plus d'informations, voir Réglage de la pertinence des résultats de recherche en utilisant le minimum de correspondances et une plage de recherche..
Soyez conscient du comportement suivant lorsque le type de recherche ANY est utilisé :

Types et résultats de la recherche

Type de recherche Résultats de la recherche
ANY Rechercher red dress renvoie les résultats suivants : red dress, red potato, red fish, dress shoes, dress shirt, dress belt.
ALL ou EXACT Les produits avec des zones consultables indexées qui contiennent red et dress sont renvoyés, mais pas blue summer dress. red floral dress est renvoyé pour le type de recherche ALL, mais pas pour le type de recherche EXACT, car il ne s'agit pas d'une correspondance exacte.
Remarque : Si vous définissez vos synonymes à l'aide des associations de termes de recherche dans le Centre de gestion, la requête de l'utilisateur est étendue avec ses synonymes avant d'être transmise à Solr. Solr applique ensuite la correspondance minimale sur cette liste étendue, au lieu de la liste d'origine. Ce comportement produit des résultats indésirables.
Considérez les solutions de contournement ou les scénarios métier suivants pour personnaliser votre site si vous souhaitez utiliser la correspondance minimale et les synonymes :
  • Si vous n'avez pas besoin d'une correspondance minimale, mais que vous avez besoin de synonymes : Configurer vos synonymes à l'aide d'associations de termes de recherche dans le Centre de gestion. Ce flux permet à chaque magasin ou site étendu d'utiliser sa propre liste de synonymes.
  • Si vous avez besoin d'une correspondance minimale et de synonymes, et que vous n'avez qu'un seul magasin par catalogue principal, ou si tous vos magasins au sein d'un même catalogue principal partagent une liste de synonymes et n'ont pas besoin de synonymes ou de termes de remplacement à plusieurs mots : Effectuez la tâche suivante : Combinaison d'une correspondance minimale avec des associations de termes de recherche (à l'aide de l'algorithme d'expansion Solr).

Phrase fields

Le paramètre Phrase fields (pf) peut augmenter le score des documents lorsque tous les termes du paramètre q apparaissent à proximité. Par exemple :

pf=name^10.0 defaultSearch^1.0 categoryname^100.0 shortDescription^5.0 partNumber_ntk^15.0

Phrase slop

Le paramètre Phrase slop (ps) spécifie la distance entre les termes de recherche indexés dans le document pour influencer la pertinence. Par exemple, les recherches pour sports movie avec les résultats ps = 1 dans sports movie sont plus pertinentes que sports is the type of a movie. Phrase slop définit la plage des requêtes de recherche qui sont construites pour phrase fields (pf). Pour plus d'informations, voir Réglage de la pertinence des résultats de recherche en utilisant le minimum de correspondances et une plage de recherche..

HCL Commerce vérifie la concordance minimale et la plage de recherche dans l'ordre suivant :
  1. Défini dans l'URL.
  2. Défini dans le profil de recherche.
  3. Défini dans le fichier de configuration de composant de catalogue (wc-component.xml) sur l'EAR Search.

Phrase bigram fields

Le paramètre Phrase bigram fields (Pf2) décompose l'entrée en bi-grammes. Par exemple, the brown fox jumped est interrogé comme the brown brown fox et fox jumped. Par conséquent, si votre phrase de recherche est red hat black jacket, vous pouvez utiliser ps=0 avec pf2 pour vous assurer que les produits qui contiennent red hats sont stimulés avant black hats.

Phrase trigram fields

Le paramètre Phrase trigram fields (Pf3) décompose l'entrée en tri-grammes. Par exemple, the brown fox jumped est interrogé comme the brown fox brown fox jumped.

Tie breaker

Le paramètre Tie breakers se produit lorsqu'un terme de l'entrée de l'utilisateur est testé sur plusieurs zones et que plusieurs zones correspondent. Chaque zone génère un score différent en fonction de la fréquence du mot dans la zone (pour chaque document par rapport à tous les autres documents). Le score de la zone ayant le score maximum est utilisé par défaut. Si deux documents contiennent un score correspondant, le paramètre Tie décide quelle zone brise l'égalité. Lorsqu'un paramètre Tie est spécifié, les scores d'autres zones correspondantes sont ajoutés au score de la zone de notation maximale :
(score of matching clause with the highest score) + ( (tie parameter) * (scores of any other matching clauses) )

Le paramètre Tie configurer la manière dont le score final de la requête est influencé par les scores des zones les moins bien notées, qui sont comparés à la zone la mieux notée.

La valeur du paramètre Tie est définie sur 0.1 par défaut. Une valeur de 0.0 transforme la requête en une requête maximale de disjonction pure, où seule la sous-requête de notation maximale contribue au score final. Une valeur de 1.0 transforme la requête en une requête de somme de disjonction pure, où la sous-requête affichant la note maximale n'est pas pertinente, et le score final est la somme des sous-scores. Une valeur faible, par exemple 0.1, est généralement utile. Pour plus d'informations sur la modification de la valeur Tie, voir Ajout de paramètres de requête Solr natifs aux expressions de recherche.

Filter query

Le paramètre Filter query (fq) spécifie une requête qui peut être utilisée pour restreindre les documents qui peuvent être renvoyés, sans influencer le score. Cela peut être utile pour accélérer les requêtes complexes, puisque les requêtes spécifiées avec le paramètre fq sont mises en cache indépendamment de la requête principale.

Stimulation de requête

Les stimulations peuvent être effectuées au niveau du temps de l'index ou du temps de la requête : Les stimulations au niveau du temps de l'index sont appliquées lors de l'ajout de documents et s'appliquent à l'ensemble du document ou à des zones spécifiques. Les stimulations au niveau du temps de la requête sont appliquées lors de la construction d'une requête de recherche et s'appliquent à des zones spécifiques.

Les stimulations de requête sont appliquées en ajoutant le caractère accent circonflexe ^ suivi d'un nombre positif aux clauses de requête. Par exemple :

title:sail OR (title:sail AND title:boat)^2.0 OR title: "sail boat"^10 
Lucene permet des stimulations négatives. Cependant, Solr ne le fait pas. La seule façon d'effectuer de manière significative une stimulation négative est d'appliquer une stimulation positive à une requête négative. Par exemple :

(*:* -title:foo)^2.0

Lorsque tous les documents qui ne contiennent pas foo dans le titre sont stimulés par 2.0.

Solr fournit un autre moyen de stimuler les documents à l'aide de requêtes de fonction. FunctionQuery vous permet d'utiliser la valeur réelle d'une zone et les fonctions de ces zones dans un score de pertinence. Pour plus d'informations, voir Solr Wiki: FunctionQuery.

Exemples

  • Vous pouvez modifier la séquence des résultats renvoyés en spécifiant une séquence de tri différente. Par exemple : sort=socre desc, price asc.
  • Vous pouvez ajouter un paramètre Filter (fl) à la requête Solr. Le paramètre fl limite les zones à renvoyer avec le jeu de résultats. Par exemple : fl=id, title, text limite uniquement les recherches dans les zones id, title et text.
  • Vous pouvez modifier la liste des zones incluses dans la section <_config:result> du profil de recherche dans le fichier wc-search.xml.
    Par exemple, pour le profil de recherche IBM_findProductsBySearchTerm :
    
    <_config:result>
            <_config:field name="catentry_id"/>
            <_config:field name="storeent_id"/>
            <_config:field name="buyable"/>
            <_config:field name="partNumber_ntk"/>
            <_config:field name="name"/>
            <_config:field name="shortDescription"/>
            <_config:field name="thumbnail"/>
            <_config:field name="keyword"/>
            <_config:field name="mfName_ntk"/>
            <_config:field name="catenttype_id_ntk_cs"/>
            <_config:field name="price_*"/>
            <_config:field name="listprice_*"/>
            <_config:field name="parentCatgroup_id_facet"/>
            <_config:field name="childCatentry_id"/>
            <_config:field name="mfPartNumber_ntk"/>  
            <_config:field name="ad_attribute"/>
            <_config:field name="isDKPreConfigured"/>
            <_config:field name="dkModelReference"/>  
            <_config:field name="dkURL"/>
            <_config:field name="dkDefaultConfiguration"/>
            <_config:field name="parentDKModelRef"/>
            <_config:field name="dkConfigurable"/>
            <_config:field name="parentDKConfigurable"/>
            <_config:field name="startdate"/>
    ;        <_config:field name="enddate"/>
    </_config:result>
    
    Vous pouvez modifier les valeurs existantes de ces paramètres dans wc-search.xml. Vous pouvez créer un nouveau pré-processeur pour ajouter un composant à utiliser dans la requête Solr finale. Pour plus d'informations, voir Création d'un pré-processeur de requêtes personnalisé.