IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

Laravel/Searchbar : comment être plus pertinent dans une recherche multi-mots ?


Sujet :

Laravel PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2022
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Laravel/Searchbar : comment être plus pertinent dans une recherche multi-mots ?
    Voici mon code, il permet de faire une recherche par mot clé et il fonctionne bien lorsqu'on recherche sur plusieurs mots "OR". Cependant, je veux rendre les résultats plus pertinents. Je voudrais que les résultats soient triés par le nombre de mots recherchés qui correspondent. Par exemple : les deux mots entrés dans une recherche sont "bleu" et "rouge". Je voudrais que les enregistrements qui contiennent "bleu" ET "rouge" soient les premiers à être triés. Voici mon code 'controller' actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    public function search()
        {
            $data = [
                'title'=> $description = 'Recherche sur '.config('app.name'),
                'description'=> $description,
                'heading'=> config('app.name'),
            ];
     
            $q = request()->input('q');
     
            $nonrelevantwords = [' un ',' en ',' de ',' avec ',' des ',' à ',' dans ',' au ',' aux ',' du ',' entre ',' par ',' pour ',' sans ',' sous ',' dessous ',' dessous',' sur ',' le ',' les ',' la ',' dessus ',' dessus','le ','les ','la '];
            $q = str_replace($nonrelevantwords,' ',$q);
     
            $words = explode(' ', $q);
     
            $query = Product::query();
     
            foreach ($words as $word) {
                $query->orWhere('title','like',"%$word%")
                    ->orWhere('subtitle','like',"%$word%")
                    ->orWhere('description','like',"%$word%");
            }
     
            $products = $query->paginate();
     
            return view('products.search', $data)->with('products', $products);
        }
    Est-ce que vous pouvez m'aider s'il vous plaît ?

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Points : 229
    Points
    229
    Par défaut
    Bonsoir

    Je viens de lire ton post et j'apporte quelques idées pour te guider.
    Le soucis de la recherche que tu effectues ne permet pas de trier correctement le sens des mots clés.
    Tu peux regarder et tester vers ce plugin laravel qui fait ce que tu fais actuelement: https://github.com/spatie/laravel-searchable .

    Tu as aussi la possibilité de faire de la rechercher FullText.

    Ensuite, tu as des systèmes que je caractérise comme "plus professionnel" qui permette d'ordonner les résultats de tes recherches, à l'exemple de TypeSense, Elastic Search, meilisearch ...

    J'espère avoir pu t'aider ou du moins, t'éclairer.

Discussions similaires

  1. [XL-2002] Top 10 des mots les plus fréquent dans une colonne de mots
    Par _gege_ dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/07/2010, 23h20
  2. [AC-2003] Comment ajouter un état dans une recherche multicritére
    Par galius21 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/05/2009, 14h17
  3. Réponses: 0
    Dernier message: 16/05/2008, 12h06
  4. la pertinence dans une recherche en texte intégral
    Par freestyler1982 dans le forum MySQL
    Réponses: 1
    Dernier message: 04/02/2008, 21h21
  5. [MySQL] Degré de pertinence dans une recherche sql
    Par Invité(e) dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/11/2005, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo