配置

return [//....'components' => ['elasticsearch' => ['class' => 'yii\elasticsearch\Connection','nodes' => [['http_address' => '127.0.0.1:9200'],// configure more hosts if you have a cluster],],]
];

创建模型

namespace api\models;class CcIndex extends \yii\elasticsearch\ActiveRecord
{public static function index(){return 'shiliucrm';}public static function primaryKey(){return ['t_id'];}public static function type(){return 'user';}public function attributes(){return ['t_id', 't_nickname', 't_add_time', 'compnay_id'];}public static function mapping(){return [static::type() => ["properties" => ["t_id"        =>   ["type" => "long"],"t_nickname" =>  ["type" => "text","index" => "analyzed",],"t_add_time" =>  ["type" => "long","index" => "not_analyzed"],"compnay_id" =>  ["type" => "long"],]]];}public static function updateMapping(){$db = static::getDb();$command = $db->createCommand();$command->setMapping(static::index(), static::type(), static::mapping());}public static function createIndex(){$db = static::getDb();$command = $db->createCommand();$command->createIndex(static::index(), ['settings' => [ 'index' => ['refresh_interval' => '1s'] ],'mappings' => static::mapping(),//'warmers' => [ /* ... */ ],//'aliases' => [ /* ... */ ],//'creation_date' => '...']);}public static function deleteIndex(){$db = static::getDb();$command = $db->createCommand();$command->deleteIndex(static::index(), static::type());}}

操作模型

插入几条测试数据吧

$model = new CcIndex();
$model->t_id=6;
$model->setAttributes(['t_nickname' => 'user3@example.com', 't_add_time' => 0, 'company_id' => 2,], false);
$model->save(false);$model = new CcIndex();
$model->t_id=7;
$model->setAttributes(['t_nickname' => 'user4@example.com', 't_add_time' => 0, 'company_id' => 2,], false);
$model->save(false);$model = new CcIndex();
$model->t_id=8;
$model->setAttributes(['t_nickname' => 'user4@qq.com', 't_add_time' => 0, 'company_id' => 3,], false);
$model->save(false);$model = new CcIndex();
$model->t_id=9;
$model->setAttributes(['t_nickname' => 'user5@qq.com', 't_add_time' => 0, 'company_id' => 3,], false);
$model->save(false);

报错

 Cluster autodetection did not find any active nodes.//集群自动检测没有发现任何活动节点。 

看来配置还不行
找到Connection.php看了一下
$autodetectCluster这个变量默认是true,也就是说默认自动监测集群,我们要改成false。

 'elasticsearch' => ['class' => 'yii\elasticsearch\Connection','autodetectCluster' => false,'nodes' => [['http_address' => '127.0.0.1:9200'],//或者填['http_address' => 'inet[/127.0.0.1:9200]'],// configure more hosts if you have a cluster],],

这次没有报错,我们查询一下吧

$data = CcIndex::find()
->query(["match" => ["t_nickname" => "example.com"]])
->all();

结果大家可以自己打印一下,这里我就不贴了

集群配置

如果还是想默认$autodetectCluster=true,那集群怎配置呢
假如我们有两个服务器,内网ip分别为10.170.224.67,10.170.224.68

以10.170.224.67举例配置

 vim /usr/local/elasticsearch/config/elasticsearch.yml

加上

cluster.name: young-application
node.name: node-2
network.host: 10.170.224.67
discovery.zen.ping.unicast.hosts: ["10.170.224.68"]

其中cluster.name 是集群名称,这个不要使用默认的,要修改,去掉注释,如果有多个机器,加入同一个集群,那么这个值必须一样

noide.name 是集群里面每个节点的值,也就是当前机器的节点的值,这个值,每个节点要不一样。

network host 改成当前的内网ip

discovery.zen.ping.unicast.hosts里的的ip就是其他的节点的ip,如果我有5台机器,那么,这里需要把其他四台机器的ip写上。

同理,对于其他的节点,需要把其他的节点协商,用逗号隔开

elasticSearch会找到对应的节点,自动分片和做复制集。

启动elasticsearch报错

ERROR: bootstrap checks failed
max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

第一个问题

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

因为现在不是root,请先切换到root用户名下进行以下操作

vi /etc/sysctl.conf

添加下面配置:

vm.max_map_count=655360

保存好并退出,执行sysctl -p命令

第二个问题

 max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

也是要在root下操作

 vi /etc/security/limits.conf

添加配置

 elasticsearch soft nofile 65536elasticsearch hard nofile 65536

退出账号,重新登陆账号elasticsearch
执行ulimit -Hn查看是否生效

重新启动elasticsearch

其他的服务器也按照以上的操作配置即可

yii2的http_address配置也得改一下

 ['http_address' => '10.170.224.67:9200']

集群这里我没有测试成功,因为我只有一台服务器可以用,虽然启动成功,但yii2访问集群的时候还是报错了,直接killed了,我是参考其他文章,结合自己捣鼓集群是遇到的问题写的,有错误欢迎纠正,别把别人越带越糊涂

参考文章:
http://blog.csdn.net/xiegh201...
http://www.fancyecommerce.com...
http://blog.csdn.net/xxxxxx91...
http://blog.csdn.net/u0123714...

yii2-elasticsearch(3)yii2 elasticsearch 的初步尝试相关推荐

  1. 【elasticsearch】总结—elasticsearch启动失败的几种情况及解决

    1.使用root用户启动失败 在有一次搭建elasticsearch的时候,使用systemctl启动elasticsearch失败,然后在bin目录下面去使用启动脚本启动,发现报错不能用root用户 ...

  2. Elasticsearch:使用 Elasticsearch 和 BERT 构建搜索引擎 - TensorFlow

    在本文中,我们使用预训练的 BERT 模型和 Elasticsearch 来构建搜索引擎. Elasticsearch 最近发布了带有向量场的文本相似性(text similarity search ...

  3. Elasticsearch:理解 Elasticsearch Percolate 查询

    这篇博文深入探讨了 Elasticsearch 的 percolate query.此机制允许你根据已注册的查询对文档进行分类或标记.起初听起来很奇怪的是一个强大的机制,我们将在这篇文章中深入探讨. ...

  4. ElasticSearch,docker 安装ElasticSearch,Springboot 使用 ElasticSearch JavaAPI

    什么是 ElasticSearch ? 数据库查询存在的问题: 性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低 关键字模糊查询比较麻烦 ElasticSearch概念 • Elas ...

  5. yum安装elasticsearch慢_ELK elasticsearch yum 安装(4th)

    比起tar包安装,以yum方式安装对于启动和关闭elasticsearch服务更为方便.而对于CentOS与Ubuntu而言,apt 安装比yum 更为方便.楼主工作前期中是以CentOS系统为主,后 ...

  6. 关于大脑记忆可视化的初步尝试(一)

    关于大脑记忆可视化的初步尝试(一) 原因:每次新结交一个新的朋友,记住他的名字很难,回忆他的名字更难,发现大脑不知道去哪里搜素:同样,接触到一个新的东西,一个新的知识点,很快会忘记,不知道怎么存储,怎 ...

  7. 腾讯SkillNet|NLU任务全能网络,对Pathways架构的初步尝试

    卷友们好,我是rumor. 21年10月的时候,谷歌大佬Jeff Dean提出了下一代AI架构的Pathways概念[1],旨在通过一个大模型完成各种不同的任务.对于较早关注AI领域的同行们来说,这其 ...

  8. 换肤功能原理及自定义组件化UI样式初步尝试

    只从UI工作开始向前端工作,我一直计划着开发一套属于自己的UI框架,网站通过拖拽点击,或输入布局代码,后台自动生成一套静态页面,从此前端工作仅需要补充各种排版即可,静态页面通过代码生成. 可能我上面的 ...

  9. ElasticSearch简介及ElasticSearch部署、原理和使用介绍

    ElasticSearch简介及ElasticSearch部署.原理和使用介绍 第一章:elasticsearch简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式 ...

最新文章

  1. Set集合常用方法 遍历Set集合的方法
  2. Window对象的判定方法
  3. 关于HashCode方法,可变对象和内存泄漏问题
  4. intel 核显linux驱动程序,10nm来也!Intel 11代核显Linux驱动功能冻结
  5. 免费阿里云服务器超爽体验(为阿里做个广告吧)
  6. 「追根溯源」Ruby数组的uniq方法
  7. MATLAB应用实战系列( 七十五) -图像处理应用 MATLAB实现基于分水岭算法的图像分割 (附matlab代码)
  8. msf与cs互相传动
  9. JMeter获取JSON内容
  10. android 代码签名apk,[Android]混淆代码后生成带签名的apk
  11. 新浪微博被罚了,暂停更新微博热搜榜一周
  12. extract($_POST[])
  13. 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Address'中的标识列指
  14. nginx+tomcat+redis负载均衡及session共享
  15. 南京工业大学计算机科学与技术学院保研外校,南京工业大学计算机科学与技术学院2018年招收推荐免试研究生章程...
  16. windows无法完成格式化U盘的几种终极解决办法
  17. 面试题之MyBatis缓存
  18. 路由器的介绍和基本原理
  19. winsxs是什么文件夹 Winsxs文件夹可以删除吗
  20. 全闪存存储 NetApp AFF A 系列 ——引领闪存的未来发展

热门文章

  1. Laya商业级3d实战-06用户输入_u3dApi集成
  2. ltsc系统升级为服务器,微软宣布Win11将像Win10一样每月提供更新 且有长期服务版本LTSC...
  3. 在C++中响铃的两种方法
  4. 使用PayPal补习注册(2/3):PayPal项目的真实注册
  5. 得到经纬度数据使用Plotly画世界地图(美赛心得)
  6. git 修改历史信息
  7. 工笔佛像怎么看和基本线条怎么画
  8. idea项目总是自动重启_IDEA 下 SpringBoot 自动重启
  9. idea 代码格式化 谷歌_Google Docsmaklet格式化代码
  10. 8421码,5421码,2421码,余3码课后学习及整理