Recherche Elasticsearch par deux champs

Exploration des techniques de recherche par deux champs, y compris les requêtes multi-correspondantes, les requêtes bool, et le renforcement des champs au moment de la requête.

Vous débutez avec Elasticsearch ? Participez à notre webinaire Premiers pas avec Elasticsearch. Vous pouvez aussi démarrer un essai gratuit sur le cloud ou tester Elastic dès maintenant sur votre machine.

La recherche sur plusieurs champs dans Elasticsearch est une exigence courante dans de nombreuses applications. Dans cet article, nous allons explorer des techniques avancées permettant d'effectuer des recherches sur deux champs, notamment les requêtes à correspondances multiples, les requêtes bool et l'augmentation du nombre de champs au moment de la requête. Ces techniques vous aideront à créer des résultats de recherche plus précis et plus pertinents pour vos utilisateurs.

Techniques avancées pour effectuer des recherches sur deux champs

1. Requête multiple

Une requête multiple vous permet de rechercher une seule chaîne de caractères dans plusieurs champs. Ceci est utile lorsque vous souhaitez trouver des documents qui contiennent la chaîne de requête donnée dans l'un ou l'autre des deux champs. Voici un exemple de requête multi-correspondance recherchant le terme "exemple" dans les champs "titre" ou "description" :

2. Requête Bool

Une requête bool vous permet de combiner plusieurs requêtes en utilisant la logique booléenne. Vous pouvez utiliser la clause "devrait" pour rechercher les documents qui correspondent à la requête dans l'un ou l'autre des deux champs. Voici un exemple de requête bool recherchant le terme "exemple" dans les champs "titre" et "description" :

3. Renforcement des champs au moment de la requête

Il peut arriver que vous souhaitiez accorder plus d'importance à un champ qu'à un autre lors de la recherche. Vous pouvez y parvenir en appliquant un facteur d'amplification au champ au moment de la requête. Une valeur de boost plus élevée donne plus de poids au champ, ce qui le rend plus susceptible d'influencer le résultat final de la recherche. Voici un exemple de requête à correspondances multiples avec un facteur d'amplification appliqué au champ "titre" :

Dans cet exemple, le champ "titre" a un facteur d'amplification de 3, ce qui signifie qu'il est trois fois plus important que le champ "description" pour déterminer le score de recherche.

4. Combinaison de requêtes avec différents facteurs d'amplification

Vous pouvez également combiner plusieurs requêtes avec différents facteurs d'augmentation à l'aide d'une requête bool. Cela vous permet d'affiner l'importance de chaque champ dans les résultats de la recherche. Voici un exemple de requête bool avec différents facteurs de boost appliqués aux champs "titre" et "description" :

Dans cet exemple, le champ "titre" a un facteur d'amplification de 3, tandis que le champ "description" a un facteur d'amplification de 1.

Conclusion

La recherche par deux champs dans Elasticsearch peut être réalisée à l'aide de techniques avancées telles que les requêtes à correspondances multiples, les requêtes bool et l'augmentation du nombre de champs au moment de la requête. En combinant ces techniques, vous pouvez créer des résultats de recherche plus précis et plus pertinents pour vos utilisateurs. Expérimentez différentes combinaisons de requêtes et de facteurs de stimulation pour trouver la configuration de recherche optimale pour votre cas d'utilisation spécifique.

Pour aller plus loin

Prêt à créer des expériences de recherche d'exception ?

Une recherche suffisamment avancée ne se fait pas avec les efforts d'une seule personne. Elasticsearch est alimenté par des data scientists, des ML ops, des ingénieurs et bien d'autres qui sont tout aussi passionnés par la recherche que vous. Mettons-nous en relation et travaillons ensemble pour construire l'expérience de recherche magique qui vous permettra d'obtenir les résultats que vous souhaitez.

Jugez-en par vous-même