J'aimerais savoir comment jouer sur la pondération de certains champs,
voire même de certains enregistrements.
Partons sur l'exemple d'un index de livres :
{ "titre":"L'écume des jours", "auteur":"Boris Vian", "statut":"validé" }
J'aimerais que le titre du livre ait un poid plus fort dans la
recherche que l'auteur.
De plus j'aimerais que les enregistrements qui ont le statut "validé"
aient un poids plus fort que les autres.
Est-ce que c'est avec le champ _boost que je dois jouer ? Si oui comment ?
Merci,
a+
Emmanuel
Si la valeur de boost est inférieure à 1, le champ aura *moins* d'importance.
Shay a néanmoins donné un excellent conseil à propos du boost.
Il vaut mieux laisser un mapping *neutre* en terme de boost et indiquer au moment de la recherche des poids pour les champs.
Je viens d'appliquer ce conseil dans mon projet, et c'est en effet, beaucoup plus intéressant car tu peux jouer avec le boost, sans avoir à reindexer tes données.
Un exemple ici : http://www.elasticsearch.org/guide/reference/query-dsl/field-query.html
David ;-)
@dadoonet
> --
> ---
> Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/group/elasticsearch
>
> Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com, merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
>
> Twitter : @ElasticsearchFR https://twitter.com/#!/ElasticsearchFR
> Site web (English) : http://www.elasticsearch.org/
Je suis d'accord avec le conseil de Shay pour le boost à la query en
ce qui concerne les champs.
Par contre pour le boost au niveau de l'enregistrement, je pense que
je vais quand meme le faire au niveau mapping car il dépend de la
valeur d'un champ. Je ne vois pas comment faire ça, et meme si c'est
faisable j'ai peur que ça complique la requête pour pas grand chose.
Merci encore pour ta réponse :)
a+
Emmanuel
Bonjour,
Le souligné permet de distinguer les champs ou actions d'ES des champs ou valeurs de l'utilisateur. Ainsi, tu peux créer un champ "boost" dans ton mapping.
Par exemple:
...
{
...
"boost" : {
"type" : "float",
"null_value" : 1.0
} ,
"_boost" : {
"name" : "boost"
}
}
Après, l'exemple recursif de la doc où _boost est en même temps un champ spécial et normal est un peu foireux.
Jérôme
De plus je viens de voir ça :
http://www.elasticsearch.org/guide/reference/query-dsl/boosting-query.html
Donc apparemment je peux aussi appliquer une pondération plus forte à
l'enregistrement en fonction de la valeur d'un de ses champs, je vais
donc suivre les conseils des experts ;).
Merci à tous les deux :)
a+
Emmanuel
David ;-)
@dadoonet
Salut Stéphane,
J’ai vu ta question aussi ici : http://groups.google.com/group/elasticsearch/browse_thread/thread/10e0db71240b7bdc/5859ac6f0b4fa31d?hl=fr%E1%9B%A3ac6f0b4fa31d
J’avoue que comme Shay, je n’ai pas compris la notion de composant. Il s’agit peut-être d’une notion de grails ?
Ce que je sais du boost :
Tu peux l’appliquer à un champ particulier de ton mapping ou mieux le choisir au moment de la recherche sur un champ particulier.
Peux-tu envoyer un exemple de mapping dont tu parles pour te faire une réponse peut-être plus précise ?
David.
De : elastics...@googlegroups.com [mailto:elastics...@googlegroups.com] De la part de Stéphane Tessier
Envoyé : vendredi 2 mars 2012 10:42
À : elastics...@googlegroups.com
Objet : Re: [elasticsearch-fr] Pondération de champs
--
Salut Stéphane,
J’ai vu ta question aussi ici : http://groups.google.com/group/elasticsearch/browse_thread/thread/10e0db71240b7bdc/5859ac6f0b4fa31d?hl=fr%E1%9B%A3ac6f0b4fa31d
J’avoue que comme Shay, je n’ai pas compris la notion de composant. Il s’agit peut-être d’une notion de grails ?
Ce que je sais du boost :
Tu peux l’appliquer à un champ particulier de ton mapping ou mieux le choisir au moment de la recherche sur un champ particulier.
Peux-tu envoyer un exemple de mapping dont tu parles pour te faire une réponse peut-être plus précise ?
David.
De : elasticsearch-fr@googlegroups.com [mailto:elasticsearch-fr@googlegroups.com] De la part de Stéphane Tessier
Envoyé : vendredi 2 mars 2012 10:42
Objet : Re: [elasticsearch-fr] Pondération de champs
Bonjour,
pour ma part, j'ai quelques zones d'ombres au niveau de l'utilisation du boost.
Peut-on appliquer le boost à un component (ie un type inclu dans un type root) ?
Si oui, faut-il l'appliquer au niveau de l'inclusion du component, ou directement sur les attributs du component ou les 2 ?
Si les deux, est-ce que les facteurs se multiplient ?
Merci d'avance,
Stéphane.
ps : pour info, j'utilise le plugin grails
--
---
Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/group/elasticsearch
Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com, merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
Twitter : @ElasticsearchFR https://twitter.com/#!/ElasticsearchFR
Site web (English) : http://www.elasticsearch.org/
Salut Stéphane,
J’ai vu ta question aussi ici : http://groups.google.com/group/elasticsearch/browse_thread/thread/10e0db71240b7bdc/5859ac6f0b4fa31d?hl=fr%E1%9B%A3ac6f0b4fa31d
J’avoue que comme Shay, je n’ai pas compris la notion de composant. Il s’agit peut-être d’une notion de grails ?
Ce que je sais du boost :
Tu peux l’appliquer à un champ particulier de ton mapping ou mieux le choisir au moment de la recherche sur un champ particulier.
Peux-tu envoyer un exemple de mapping dont tu parles pour te faire une réponse peut-être plus précise ?
David.
De : elasticsearch-fr@googlegroups.com [mailto:elasticsearch-fr@googlegroups.com] De la part de Stéphane Tessier
Envoyé : vendredi 2 mars 2012 10:42
Objet : Re: [elasticsearch-fr] Pondération de champs
Bonjour,
pour ma part, j'ai quelques zones d'ombres au niveau de l'utilisation du boost.
Peut-on appliquer le boost à un component (ie un type inclu dans un type root) ?
Si oui, faut-il l'appliquer au niveau de l'inclusion du component, ou directement sur les attributs du component ou les 2 ?
Si les deux, est-ce que les facteurs se multiplient ?
Merci d'avance,
Stéphane.
ps : pour info, j'utilise le plugin grails
--
---
Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/group/elasticsearch
Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com, merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
Twitter : @ElasticsearchFR https://twitter.com/#!/ElasticsearchFR
Site web (English) : http://www.elasticsearch.org/
Salut Stéphane,
J’ai vu ta question aussi ici : http://groups.google.com/group/elasticsearch/browse_thread/thread/10e0db71240b7bdc/5859ac6f0b4fa31d?hl=fr%E1%9B%A3ac6f0b4fa31d
J’avoue que comme Shay, je n’ai pas compris la notion de composant. Il s’agit peut-être d’une notion de grails ?
Ce que je sais du boost :
Tu peux l’appliquer à un champ particulier de ton mapping ou mieux le choisir au moment de la recherche sur un champ particulier.
Peux-tu envoyer un exemple de mapping dont tu parles pour te faire une réponse peut-être plus précise ?
David.
De : elasticsearch-fr@googlegroups.com [mailto:elasticsearch-fr@googlegroups.com] De la part de Stéphane Tessier
Envoyé : vendredi 2 mars 2012 10:42
Objet : Re: [elasticsearch-fr] Pondération de champs