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
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<80% 6<50%.
ANY est utilisé :| 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. |
- 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
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..
- Défini dans l'URL.
- Défini dans le profil de recherche.
- 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
(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.
^ 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
(*:* -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, textlimite 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 :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é.<_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>