Je voudrais implémenter une recherche de site intranet avec l'aide d'Elasticsearch mais je ne trouve pas la formule de requête qui répondra tous mes besoins.Comment construire une requête Elasticsearch qui prendra en compte la distance entre les mots et l'exactitude du mot
est ici les critères que je voudrais demander à ma recherche lors de la recherche 2+ mots:
- le plus proche sont les mots du texte de contenu, le plus élevé sera le score
- quand il trouver le mot exact, il devrait donner un score plus élevé que s'il doit remplacer les lettres dans le mot dans une recherche floue
- si tous les mots sont présents dans le texte, il devrait avoir un score plus élevé que s'il en trouve un
Voici une démo de ma requête de recherche où vous pouvez jouer en ligne: https://www.found.no/play/gist/6df91cb4ed1f2b4b7328
Quand je ne recherche « péager », je reçois le résultat dans cet ordre:
- Est-ce votre péage quelque chose connecteur pantalon portant
- est votre connecteur sans pantalon portant
- Est-ce votre péager portant un pantalon
- est votre sans faire quelque chose collector pantalon portant
- Est-ce votre sans quelque chose collector pantalon portant
Mais pourquoi le match exact est dans la troisième endroit? Pourquoi pas en première position? Ce que je veux est ce résultat:
- Est-ce votre péager pantalon portant
- Est-ce votre sans quelque chose collectionneur pantalon portant
- Est-ce votre sans faire quelque chose collectionneur porter des pantalons
- Est-ce que votre connecteur de péage porte un pantalon Est-ce votre
- sans quelque chose connecteur pantalon portant