recherche

Maison  >  Questions et réponses  >  le corps du texte

Laravel utilise un problème de requête floue DB

La documentation a un exemple : https://laravel.com/docs/5.3/...
Comme suit :

$users = DB::table('users')
                ->where('name', 'like', 'T%')
                ->get();

Question 1 :
L'exemple ci-dessus ne recherche qu'un seul nom de champ. Si j'ai une table d'articles avec deux champs de titre et de contenu qui nécessitent une recherche floue, comment dois-je l'écrire ?

$keywords= $request->input('keywords');
$articles = DB::table('articles')
                ->where('content', 'like', $keywords.'%') //这一句里面不止content,而是title和content两个字段
                ->get();

Question 2 :
Y a-t-il d'autres paramètres ou opérations requis pour rechercher le chinois ?

PHPzPHPz2783 Il y a quelques jours763

répondre à tous(2)je répondrai

  • 为情所困

    为情所困2017-05-16 16:51:26

    $keywords= $request->input('keywords');
    $articles = DB::table('articles')
                    ->where('content', 'like', $keywords.'%')
                    ->orWhere('title', 'like', $keywords.'%')
                    ->get();
    

    L'utilisation de Like pour rechercher en chinois ne nécessite pas d'autres paramètres ou opérations. Il n'est pas recommandé d'utiliser like pour ce type d'opération de recherche en texte intégral. Il est préférable d'utiliser des moteurs de recherche tels que ElasticSearch ou Sphinx pour y parvenir

    .

    répondre
    0
  • 高洛峰

    高洛峰2017-05-16 16:51:26

    Vous pouvez essayer la recherche en texte intégral

    select * from articles where match (title,content) against ('keywords');

    répondre
    0
  • Annulerrépondre