Elasticsearch
Elasticsearch
优点:1、不用搭建集群,自动搭建
2、使用restful风格
3、近乎实时搜索
所有的软件都在百度云下的elasticsearch目录下。
安装过程:
1、上传解压
2、重命名下 mv elasticsearch-6.4.1 elasticsearch
2、添加新用户(Elasticsearch用root账号的话是启动不了的)
命令一:groupadd elsearch 创建用户组,elsearch可以修改的 用户组名字:elsearch
命令二:useradd elsearch -g elsearch 创建新用户 用户名:elsearch
切换用户:su - 新用户
3、修改权限,在root用户下操作的
比如Elasticsearch放在/usr/local目录下的话 那么就在local目录下:chown elsearch:elsearch elasticsearch/ -R ll即可查看是否在新用户下
4、修改配置文件,这个步骤是在新用户下操作的
cd elasticsearch/config
vim jvm.options 把里面的-Xms1g和-Xmx1g改成-Xms256m和-Xmx256m 因为1G占用的内存过多,所以调小点,256M不是固定的
vim elasticsearch.yml 修改path.data改成 /usr/local/elasticsearch/data path.logs为/usr/local/elasticsearch/logs netword.host改成0.0.0.0 前面的#注意去掉
返回/usr/local/elasticsearch 创建data目录 然后的话需要再输入:chown elsearch:elsearch elasticsearch/ -R 因为重建创建了data目录)
开启:需要在新用户下的bin目录进行开启,可能会显示如下错误:
错误1、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
这部分的话需要在root账户修改
vim /etc/security/limits.conf 在# End of file上面加入如下代码:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
然后进行保存
错误2:如果出现类似call_filter的错误的话,在root账户修改,在conf目录中的elasticsearch.yml最后一行添加:bootstrap.system_call_filter: false
错误3:可能会出现max numer of threads,也是在root账户修改,vim /etc/security/limits.d/文件(这里面只有一个文件) 里面的数字1024改成4096
错误4:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vim /etc/sysctl.conf 在最后一行添加vm.max_map_count=655360 保存退出,输入sytctl -p
然后的话把新账号关闭重新连接
前提:9200端口需要加入防火墙里面
在浏览器输入IP:9200 有显示相关信息即可表示成功
启动:需要在新账号下的elasticsearch的bin目录进行启动
由于elasticsearch没有网页版的,所以我们需要下载kibana,这是windows版的
修改配置文件:E:\kibana-6.2.4-windows-x86_64\config\kibana.yml的elasticsearch.url改成直接服务器的IP:9200 #记得去掉
输入localhost:5601即可显示kibana的页面
ik分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases这个也可以进行下载,注意需要和elasticsearch的版本一致
把文件放到服务器的elasticsearch目录的插件下 路径:/usr/local/elasticsearch/plugins
需要把压缩包删掉,不然会报错
进行解压:[root@bogon plugins]# unzip elasticsearch-analysis-ik-6.2.4.zip
重命名下:[root@bogon plugins]# mv elasticsearch ik-analyzer
切换到新账号重新启动elasticsearch/bin
elasticsearch:包括索引库(数据库的名称)、类型(数据库中数据表的名称)、文档(数据表中的行)、字段(数据表中的列) 分片(shard)、备份(replica)
创建索引库
在localhost:5601的Dev Tools输入
PUT /leyou /leyou就是索引库的名称,可以自己定义
{
"settings": {
"number_of_shards": 3
, "number_of_replicas": 2
}
}
删除的话就DELETE /索引库名称 查询指定索引库的话就 GET /索引库名称 全部的话就GET *
创建类型
下面这些是要定义的
type:类型,包括text、keyword、long、integer、short、byte、double、float、boolean、date等 其中text可分词,keyword不可分词
index:是否要索引,也就是是否要进行搜索,默认为true
store,是否要存储,默认false 这个可以直接忽略
analyzer:分词器,我们使用的是ik分词器,包括ik_max_word、ik_smart等
例子:
PUT leyou/_mapping/goods PUT 索引库名称/_mapping/类型名称
{
"properties": {
"title": {
"type": "text",
"analyzer": "ik_max_word"
},
"images": {
"type": "keyword",
"index": false
},
"price": {
"type": "float"
}
}
}
查询、删除和索引库一样,查询所有的话就GET 索引库名称/_mapping
创建数据 最好用PUT,既可以新增,也可以修改
随机生成ID 指定ID
POST leyou/goods 索引库名称/类型名称 索引库名称/类型名称/id(比如1,2,3等等)
{
"title": "小米手机", key:value
"image": "http://image.leyou.com/12479122.png",
"price": 2699.00
}
查询指定ID数据,删除的话就是DELETE
GET 索引库名称/类型名称/id
查询所有的数据
GET leyou/_search
{
"query": {"match_all": {}}
}

浙公网安备 33010602011771号