我尝试使用带有包
的Laravel scout的弹性搜索"laravel/scout": "^1.0",
"tamayo/laravel-scout-elastic": "^1.0"
在localhost:9200中运行Elasticsearch服务器并创建索引并提供必要的配置
将可搜索的特征添加到模型中
并将数据导入索引,如
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中添加没有索引的recored时,模型会抛出错误,例如找不到索引。但是在添加数据之后,所有它似乎都是空的。我错过了什么吗?
整个同样适用于algolia。
答案 0 :(得分:1)
设置QUEUE = sync或者你可以在config / scout.php上关闭队列。
有同样的问题:https://github.com/ErickTamayo/laravel-scout-elastic/issues/43
答案 1 :(得分:0)
我有同样的问题。 在Elasticsearch中删除索引并运行:
php artisan scout:import App\\story
让侦察员创造它。
答案 2 :(得分:0)
如果您使用的是弹性搜索,请检查错误日志 - 我有:
sudo su
tail -f /var/log/elasticsearch/elasticsearch.log
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}'
或者在 elasticsearch.yml 中永久更改这些更改并重新启动服务。