2 votes

Définir le poids pour le champ de suggestion d'achèvement dans elasticsearch-dsl

En utilisant Elastic Search 5.2.x et elasticseach-dsl pour la création d'index en masse dans mon application Django, j'essaie d'implémenter un champ de suggestion d'achèvement comme suit :

def indexing(self):
       obj = SchoolIndex(
          meta = {'id': self.pk},
          name = self.name,
          name_suggest = self.name
       )
       obj.save(index="school_index")
       return obj.to_dict(include_meta=True)

Maintenant, j'ai besoin de définir quelques poids pour le champ suggest-name_suggest, de sorte que les suggestions soient notées pendant la requête, mais je ne suis pas capable de comprendre la syntaxe spécifique à elasticsearch-dsl pour faire la même chose dans la fonction ci-dessus.

J'ai essayé de faire ça, mais ça n'a pas marché :

name_suggest = {'input':self.name,'weight':100}

Essentiellement, j'essaie d'implémenter dans Django, ce que la documentation montre ici : https://www.elastic.co/guide/en/elasticsearch/reference/5.6/search-suggesters-completion.html#indexing

Je suis nouveau dans Elastisearch, veuillez me dire si j'attribue le poids au bon endroit dans le code et la syntaxe pour le faire dans Django.

Gracias.

0voto

Anupam Points 7016

Pour la référence des autres, voici une méthode de travail pour indexer avec des poids :

def indexing(self):
       obj = SchoolIndex(
          meta = {'id': self.pk},
          name = self.name,
          name_suggest = {'input': self.name, 'weight': 10}
       )
       obj.save(index="school_index")
       return obj.to_dict(include_meta=True)

Avec ce qui précède, les scores seront renforcés en fonction des pondérations.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X