94 lines
3.1 KiB
PHP
94 lines
3.1 KiB
PHP
#!/usr/bin/env php
|
||
<?php
|
||
|
||
/**
|
||
* Script de test Meilisearch - Vérification du filtre de difficulté
|
||
*
|
||
* Usage: php test-meilisearch-filters.php
|
||
*/
|
||
|
||
require __DIR__.'/vendor/autoload.php';
|
||
|
||
$app = require_once __DIR__.'/bootstrap/app.php';
|
||
$app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();
|
||
|
||
use App\Models\Hunts;
|
||
use Illuminate\Support\Facades\Log;
|
||
|
||
echo "🔍 Test des filtres Meilisearch\n\n";
|
||
|
||
// Test 1: Vérifier que les hunts existent en DB
|
||
echo "1️⃣ Vérification des hunts dans la base de données:\n";
|
||
$allHunts = Hunts::all();
|
||
echo " Total hunts en DB: " . $allHunts->count() . "\n";
|
||
|
||
$huntsByDifficulty = $allHunts->groupBy('difficulty');
|
||
foreach (['easy', 'medium', 'hard'] as $diff) {
|
||
$count = isset($huntsByDifficulty[$diff]) ? $huntsByDifficulty[$diff]->count() : 0;
|
||
echo " - $diff: $count hunts\n";
|
||
}
|
||
|
||
echo "\n";
|
||
|
||
// Test 2: Vérifier ce qui est indexé dans Meilisearch
|
||
echo "2️⃣ Vérification de l'indexation Meilisearch:\n";
|
||
try {
|
||
$search = Hunts::search('')->raw();
|
||
echo " Total hunts indexés: " . $search['estimatedTotalHits'] . "\n";
|
||
|
||
if (isset($search['hits'][0])) {
|
||
echo " Premier hunt indexé:\n";
|
||
$firstHunt = $search['hits'][0];
|
||
echo " - ID: " . ($firstHunt['id'] ?? 'N/A') . "\n";
|
||
echo " - Title: " . ($firstHunt['title'] ?? 'N/A') . "\n";
|
||
echo " - Difficulty: " . ($firstHunt['difficulty'] ?? 'N/A') . "\n";
|
||
echo " - City: " . ($firstHunt['city'] ?? 'N/A') . "\n";
|
||
}
|
||
} catch (Exception $e) {
|
||
echo " ❌ Erreur: " . $e->getMessage() . "\n";
|
||
}
|
||
|
||
echo "\n";
|
||
|
||
// Test 3: Test du filtre de difficulté
|
||
echo "3️⃣ Test du filtre difficulty=medium:\n";
|
||
try {
|
||
$mediumHunts = Hunts::search('')
|
||
->options([
|
||
'filter' => 'difficulty = "medium"'
|
||
])
|
||
->raw();
|
||
|
||
echo " Hunts avec difficulty=medium: " . $mediumHunts['estimatedTotalHits'] . "\n";
|
||
|
||
if ($mediumHunts['estimatedTotalHits'] > 0 && isset($mediumHunts['hits'][0])) {
|
||
echo " Premier résultat:\n";
|
||
echo " - " . $mediumHunts['hits'][0]['title'] . " (difficulty: " . $mediumHunts['hits'][0]['difficulty'] . ")\n";
|
||
} else {
|
||
echo " ⚠️ Aucun hunt trouvé avec difficulty=medium\n";
|
||
echo " Vérifiez que les hunts ont bien été réindexés avec:\n";
|
||
echo " php artisan scout:import \"App\\Models\\Hunts\"\n";
|
||
}
|
||
} catch (Exception $e) {
|
||
echo " ❌ Erreur: " . $e->getMessage() . "\n";
|
||
}
|
||
|
||
echo "\n";
|
||
|
||
// Test 4: Vérifier les attributs filtrables
|
||
echo "4️⃣ Vérification des settings Meilisearch:\n";
|
||
try {
|
||
$client = app(\Laravel\Scout\EngineManager::class)->engine();
|
||
$meilisearchClient = $client->engine;
|
||
|
||
$index = $meilisearchClient->index('hunts');
|
||
$settings = $index->getSettings();
|
||
|
||
echo " Attributs filtrables: " . implode(', ', $settings['filterableAttributes'] ?? []) . "\n";
|
||
echo " Attributs triables: " . implode(', ', $settings['sortableAttributes'] ?? []) . "\n";
|
||
} catch (Exception $e) {
|
||
echo " ❌ Erreur: " . $e->getMessage() . "\n";
|
||
}
|
||
|
||
echo "\n✅ Tests terminés!\n";
|