Laravel Scout с упругим поиском не работает
Я пробовал использовать Elastic search с Laravel scout с пакетами
"laravel/scout": "^1.0",
"tamayo/laravel-scout-elastic": "^1.0"
Запустил сервер Elasticsearch на локальном хосте:9200, создал индекс и дал необходимые настройки
добавлены признаки поиска в модель
и импортированные данные для индексации, как
php artisan scout:import "App\story"
Imported [App\story] models up to ID: 4
All [App\story] records have been imported.
Но когда я делаю поиск, он возвращает пустой массив
story::search("the")->get()
=> Illuminate\Database\Eloquent\Collection {#754
all: [],
}
когда я делаю скручивание, это также показывает, как,
// http://localhost:9200/author/_search?pretty=true&q=*:*
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": [
]
}
}
Когда я добавляю записанное без индекса в ES, модель выдает ошибку вроде index not found . Но после добавления данных все кажется пустым. Я что-то пропустил?
Все то же самое прекрасно работает с Алголией.
3 ответа
Установите QUEUE=sync, иначе вы можете отключить очередь в config/scout.php.
Была такая же проблема: https://github.com/ErickTamayo/laravel-scout-elastic/issues/43
Я была такая же проблема. Удалите свой индекс в Elasticsearch и запустите:
php artisan scout:import App\\story
Пусть разведчик создаст это.
Если вы используете эластичный поиск, проверьте журнал ошибок - у меня было:
sudo su
tail -f /var/log/elasticsearch/elasticsearch
high disk watermark [90%] exceeded on [minbqqKpRV-umA0DPxkuww][mihai-MS-7A72][/var/lib/elasticsearch/nodes/0] free: 28.9gb[6.3%], shards will be relocated away from this node; currently relocating away shards totalling [0] bytes; the node is expected to continue to exceed the high disk watermark when these relocations are complete
ЕСЛИ это так, отключите проверку диска, по крайней мере, для тестирования
curl -XPUT -H "Content-Type: application/json" \
http://localhost:9200/_all/_settings \
-d '{"index.blocks.read_only_allow_delete": false}'