PHP code example of vuthaihoc / laravel-matrixone
1. Go to this page and download the library: Download vuthaihoc/laravel-matrixone library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
vuthaihoc / laravel-matrixone example snippets
'connections' => [
'matrixone' => [
'driver' => 'matrixone',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', 6001),
'database' => env('DB_DATABASE', 'laravel'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', '111'),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
],
],
// Migrations use Laravel's Blueprint; the driver adds vector macros.
use Illuminate\Database\Schema\Blueprint;
Schema::create('documents', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->vector('embedding', 3);
$table->vectorIndex('embedding');
$table->timestamps();
});
// Models are plain Eloquent models.
use Illuminate\Database\Eloquent\Model;
use MatrixOne\Eloquent\Casts\AsVector;
class Document extends Model
{
protected $guarded = [];
protected function casts(): array
{
return ['embedding' => AsVector::class];
}
}
Document::create(['title' => 'MatrixOne', 'embedding' => [0.1, 0.2, 0.3]]);
// The 5 nearest documents by cosine distance.
Document::nearestTo('embedding', [0.1, 0.2, 0.25], 5)->get();
// Laravel's own vector methods work too.
Document::whereVectorSimilarTo('embedding', [0.1, 0.2, 0.25], minSimilarity: 0.8)->get();