ahmadajah03 Wed Sep 2020 1 year ago

Contoh Tutorial Full Text Search pada Laravel 7

Laravel 7, 6 aplikasi full text search. Di sini Anda akan belajar bagaimana mengimplementasikan full text search dalam aplikasi laravel dalam package full text search.

Tutorial ini akan memandu Anda langkah demi langkah tentang cara mengimplementasikan full text search di aplikasi laravel menggunakan full text search package dan model bootstrap. Serta belajar bagaimana mengatasi kesalahan ini "Laravel: Kesalahan sintaks atau pelanggaran akses: Kesalahan 1055" . Terjadi implementasi pencarian teks lengkap.

Tutorial ini menggunakan metode form get untuk membuat full text search dengan mysql DB di aplikasi laravel. Dan gunakan php artisan tinker untuk menghasilkan data dummy ke dalam tabel database.

Perhatikan bahwa,  full - Text Cari di MySQL  Server memungkinkan pengguna menjalankan  fulkl-  text query terhadap data berbasis karakter di  MySQL  tabel. Anda harus membuat  full - text indeks di atas meja sebelum Anda menjalankan  full - text query di table . full- text indeks dapat mencakup satu atau lebih kolom berbasis karakter dalam tabel.

Cara yang jauh lebih baik dan lebih cepat untuk mencari ke dalam tabel MySql DB adalah dengan menggunakan pencarian FULLTEXT daripada menggunakan Laravel 'LIKE' yang fasih dengan query.

Tutorial ini juga bekerja dengan versi berbeda laravel seperti laravel 5, 5.5, 6, 7.x dll.

Tutorial full text search Laravel Dari Awal
Mari kita mulai implementasi full text search laravel di laravel 7, 6 versi:

  • Langkah 1: Instal Aplikasi Baru Laravel
  • Langkah 2: Konfigurasi file .evn
  • Langkah 3: Jalankan Migrasi
  • Langkah 4: Instal full text search package
  • Langkah 5: Tambahkan data dummy di DB
  • Langkah 6: Tambahkan Route,
  • Langkah 7: Buat Controller
  • Langkah 8: Buat view blade
  • Langkah 9: Mulai Server Development

Step 1: Install Laravel Fresh Setup

Pertama-tama, buka terminal Anda dan jalankan perintah berikut untuk menginstal atau mengunduh aplikasi baru laravel untuk aplikasi full text search:

composer create-project --prefer-dist laravel/laravel blog

Step 2: Configuration .env file

Pada langkah ini, buka direktori root proyek. Dan buka file .env. Kemudian tambahkan detail database seperti gambar berikut:

Step 3: Run Migration

Pada langkah ini, jalankan perintah migrasi untuk memigrasi tabel ke database:

php artisan migrate

Step 4: Install Full Text Package

Sekarang, buka terminal Anda lagi, dan jalankan perintah berikut untuk menginstal full text serach package di aplikasi laravel:

composer require nicolaslopezj/searchable

Step 5: Add Fake Records in DB

Pada langkah ini, jalankan perintah berikut di terminal untuk menambahkan data dummy ke dalam tabel database:

php artisan tinker

Setelah menjalankan php artisan tinker. Jalankan perintah berikut. Ini akan menambahkan 150 data dummy di database Anda:

>>> factory(App\User::class, 150)->create();

Step 6: Create Routes

Pada langkah ini, navigasikan ke direktori route aplikasi laravel dan buka file web.php . Kemudian tambahkan route berikut ke file web.php :

Route::get('full-text-search', 'FullTextSearchController@index');

Step 7: Create Controller

Sekarang, buka terminal Anda lagi, dan jalankan perintah berikut untuk membuat controller:

php artisan make:controller FullTextSearchController

Kemudian buka direktori app/Http/Controllers dan buka file FullTextSearchController.php . Dan tambahkan kode berikut ke file FullTextSearchController.php:

<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
use App\User;
 
class FullTextSearchController extends Controller
{
    public function index(Request $request)
    {
        if($request->has('term')){
            $data['lists'] = User::search($request->get('term'))->get();  
        }else{
            $data['lists'] = User::get();
        }
        return view('full-text-search', $data);
    }    
}

Step 8: Create Blade View

Pada langkah ini, navigasikan ke   direktori resources/views/dan buat satu file tampilan blade bernama file users.blade.php . Kemudian tambahkan kode berikut ke file users.blade.php Anda :

<!DOCTYPE html>
<html>
<head>
     
    <meta charset="utf-8">
    <title>Laravel 7, 6, 5 Full Text Search Tutorial</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    </head>
 
   <body>
    <div class="container mt-5">
        <div class="card">
          <div class="card-header">
            <h1>Laravel 7/6 Full Text Search Tutorial From Scratch</h1>
          </div>
          <div class="card-body">
                    <form method="GET" action="{{ url('full-text-search') }}">
                    <div class="row">
                        <div class="col-md-6">
                            <input type="text" name="term" class="form-control" placeholder="Search">
                        </div>
                        <div class="col-md-6">
                            <button class="btn btn-primary">Search</button>
                        </div>
                    </div>
                </form>
               <br/>
               <table class="table table-bordered">
                    <tr>
                        <th>Id</th>
                        <th>Name</th>
                        <th>Email</th>
                    </tr>
                    @if($lists)
                        @foreach($lists as $list)
                        <tr>
                            <td>{{ $list->id }}</td>
                            <td>{{ $list->name }}</td>
                            <td>{{ $list->email }}</td>
                        </tr>
                        @endforeach
                    @else
                    <tr>
                        <td colspan="3" class="text-danger">Result not found.</td>
                    </tr>
                    @endif
              </table>
          </div>
        </div>
    </div>
</body>
</html>

Step 9: Start Development Server

Pada langkah ini, buka terminal Anda dan jalankan perintah php artisan serve untuk memulai aplikasi full text serach laravel Anda secara lokal:

php artisan serve

If you want to run the project diffrent port so use this below command 

php artisan serve --port=8080

Sekarang Anda siap untuk menjalankan aplikasi full text serach laravel ini. Jadi buka browser Anda dan tekan url berikut di atasnya:

http://localhost:8000/full-text-search

 

Kesimpulan

Tutorial full text serach Laravel, di sini Anda telah belajar dari awal bagaimana menerapkan full text serach di aplikasi laravel. Perhatikan bahwa, jika Anda menemukan error berikut ini di aplikasi full text serach laravel:

SQLSTATE[42000]: Syntax error or access violation: 1055 ‘fulltextsearch.users.name’ isn’t in GROUP BY (SQL: select * from (select users.*, max((case when LOWER(users.name) LIKE tr then 150 else 0 end) + (case when LOWER(users.name) LIKE tr% then 50 else 0 end) + (case when LOWER(users.name) LIKE %tr% then 10 else 0 end) + (case when LOWER(users.email) LIKE tr then 75 else 0 end) + (case when LOWER(users.email) LIKE tr% then 25 else 0 end) + (case when LOWER(users.email) LIKE %tr% then 5 else 0 end)) as relevance from users group by users.id having relevance >= 3.75 order by relevance desc) as users)

Solusi Kesalahan Di Atas: Arahkan ke direktori config dan buka file database.php . Kemudian ubah strict => false untuk menonaktifkan mode strict MySQL.

full text serach with laravel mysql laravel 6 laravel laravel 7