5

我试过了

  • 将弹性搜索与 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 中添加没有索引的记录时,模型会抛出类似index not found. 但是在添加数据和所有之后,它似乎是空的。我错过了什么吗?

与 algolia 完全一样。

4

3 回答 3

3

我遇到过同样的问题。删除 Elasticsearch 中的索引并运行:

php artisan scout:import App\\story

让侦察兵创造它。

于 2017-08-10T12:28:53.347 回答
3

设置 QUEUE=sync 或者你可以在 config/scout.php 上关闭队列。

有同样的问题:https ://github.com/ErickTamayo/laravel-scout-elastic/issues/43

于 2017-03-09T22:29:56.290 回答
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 中使这些更改永久化并重新启动服务。

于 2021-05-25T13:48:27.197 回答