Laravel+Scout+ElasticSearch,在import,为什么每次索引都是一样的,是不是存在缓存问题?

新手上路,请多包涵

本人的搜索引擎采用的是Laravel+Scout+ElasticSearch组合,但是在使用的过程中发现,当第一次产生数据以后,服务器好像就产生了缓存模板,后面所有的数据都是采用第一次的格式导入ElasticSearch。
比如:
我有2个model:Post和Article,
Post 的searchableAs()的返回值设置为'post';
Article的searchableAs()的返回值设置为'article';
接着,当import Post之后,ElasticSearch自动生成索引post/post;
之后,再import Article发现,Article也被导入到索引post/post中了;
之后,无论导入其他什么model,都是导入到post/post中,searchableAs()感觉失去了应有的效果;
另外,model中设置的toSearchableArray()字段也是,如果刚开始设置的是

    return [
        'title' => $this->title,
        'content' => $this->dst,
    ];

后面,如果想要再添加一个字段,sort

    return [
        'title' => $this->title,
        'content' => $this->dst,
        'sort' => $this->dst
    ];        

会发现,新的字段根本添加不进去,各种操作都没办法搞定,

 php artisan cache:clear
 php artisan route:clear
 php artisan clear-compiled     

以上方法都试过一遍了,都没用,怀疑是缓存问题,但又不知道是什么缓存导致的。
以上操作的真实目的,为了实现多索引:
根据网上大神指点,在model的构造方法当中修改了index的值,按道理来说应该可以参数不同的index,但因为缓存干扰,最后只能导入到post/post当中。

function __construct($params=[])
{
    \Config::set('scout.elasticsearch.index', config('scout.elasticsearch.article'));
    parent::__construct($params);
}    

求解,以上问题是否是因为Scout的缓存机制导致的?
如果是,应该如何取消这个缓存机制?

阅读 1.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题