yii2-elasticsearch(3)yii2 elasticsearch 的初步尝试
配置
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 的初步尝试相关推荐
- 【elasticsearch】总结—elasticsearch启动失败的几种情况及解决
1.使用root用户启动失败 在有一次搭建elasticsearch的时候,使用systemctl启动elasticsearch失败,然后在bin目录下面去使用启动脚本启动,发现报错不能用root用户 ...
- Elasticsearch:使用 Elasticsearch 和 BERT 构建搜索引擎 - TensorFlow
在本文中,我们使用预训练的 BERT 模型和 Elasticsearch 来构建搜索引擎. Elasticsearch 最近发布了带有向量场的文本相似性(text similarity search ...
- Elasticsearch:理解 Elasticsearch Percolate 查询
这篇博文深入探讨了 Elasticsearch 的 percolate query.此机制允许你根据已注册的查询对文档进行分类或标记.起初听起来很奇怪的是一个强大的机制,我们将在这篇文章中深入探讨. ...
- ElasticSearch,docker 安装ElasticSearch,Springboot 使用 ElasticSearch JavaAPI
什么是 ElasticSearch ? 数据库查询存在的问题: 性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低 关键字模糊查询比较麻烦 ElasticSearch概念 • Elas ...
- yum安装elasticsearch慢_ELK elasticsearch yum 安装(4th)
比起tar包安装,以yum方式安装对于启动和关闭elasticsearch服务更为方便.而对于CentOS与Ubuntu而言,apt 安装比yum 更为方便.楼主工作前期中是以CentOS系统为主,后 ...
- 关于大脑记忆可视化的初步尝试(一)
关于大脑记忆可视化的初步尝试(一) 原因:每次新结交一个新的朋友,记住他的名字很难,回忆他的名字更难,发现大脑不知道去哪里搜素:同样,接触到一个新的东西,一个新的知识点,很快会忘记,不知道怎么存储,怎 ...
- 腾讯SkillNet|NLU任务全能网络,对Pathways架构的初步尝试
卷友们好,我是rumor. 21年10月的时候,谷歌大佬Jeff Dean提出了下一代AI架构的Pathways概念[1],旨在通过一个大模型完成各种不同的任务.对于较早关注AI领域的同行们来说,这其 ...
- 换肤功能原理及自定义组件化UI样式初步尝试
只从UI工作开始向前端工作,我一直计划着开发一套属于自己的UI框架,网站通过拖拽点击,或输入布局代码,后台自动生成一套静态页面,从此前端工作仅需要补充各种排版即可,静态页面通过代码生成. 可能我上面的 ...
- ElasticSearch简介及ElasticSearch部署、原理和使用介绍
ElasticSearch简介及ElasticSearch部署.原理和使用介绍 第一章:elasticsearch简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式 ...
最新文章
- Set集合常用方法 遍历Set集合的方法
- Window对象的判定方法
- 关于HashCode方法,可变对象和内存泄漏问题
- intel 核显linux驱动程序,10nm来也!Intel 11代核显Linux驱动功能冻结
- 免费阿里云服务器超爽体验(为阿里做个广告吧)
- 「追根溯源」Ruby数组的uniq方法
- MATLAB应用实战系列( 七十五) -图像处理应用 MATLAB实现基于分水岭算法的图像分割 (附matlab代码)
- msf与cs互相传动
- JMeter获取JSON内容
- android 代码签名apk,[Android]混淆代码后生成带签名的apk
- 新浪微博被罚了,暂停更新微博热搜榜一周
- extract($_POST[])
- 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Address'中的标识列指
- nginx+tomcat+redis负载均衡及session共享
- 南京工业大学计算机科学与技术学院保研外校,南京工业大学计算机科学与技术学院2018年招收推荐免试研究生章程...
- windows无法完成格式化U盘的几种终极解决办法
- 面试题之MyBatis缓存
- 路由器的介绍和基本原理
- winsxs是什么文件夹 Winsxs文件夹可以删除吗
- 全闪存存储 NetApp AFF A 系列 ——引领闪存的未来发展
热门文章
- Laya商业级3d实战-06用户输入_u3dApi集成
- ltsc系统升级为服务器,微软宣布Win11将像Win10一样每月提供更新 且有长期服务版本LTSC...
- 在C++中响铃的两种方法
- 使用PayPal补习注册(2/3):PayPal项目的真实注册
- 得到经纬度数据使用Plotly画世界地图(美赛心得)
- git 修改历史信息
- 工笔佛像怎么看和基本线条怎么画
- idea项目总是自动重启_IDEA 下 SpringBoot 自动重启
- idea 代码格式化 谷歌_Google Docsmaklet格式化代码
- 8421码,5421码,2421码,余3码课后学习及整理