suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Laravel nutzt das DB-Fuzzy-Query-Problem

Die Dokumentation enthält ein Beispiel: https://laravel.com/docs/5.3/...
Wie folgt:

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

Frage 1:
Das obige Beispiel sucht nur nach einem Feldnamen. Wenn ich eine Artikeltabelle mit zwei Feldern, Titel und Inhalt, habe, die eine Fuzzy-Suche benötigen, wie soll ich sie schreiben?

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

Frage 2:
Sind für die Suche nach Chinesisch weitere Einstellungen oder Vorgänge erforderlich?

PHPzPHPz2826 Tage vor837

Antworte allen(2)Ich werde antworten

  • 为情所困

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

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

    使用Like搜索中文是不需要其它设置或操作的,对于这种全文搜索操作不建议使用like,最好是使用搜索引擎如ElasticSearch或者Sphinx等工具来实现

    Antwort
    0
  • 高洛峰

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

    全文搜索可以试试

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

    Antwort
    0
  • StornierenAntwort