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": {}}
}

 

posted @ 2019-01-30 21:11  曾饺  阅读(263)  评论(0)    收藏  举报