elasticsearch与mysql的区别:
索引就是数据库,类型就是数据表,文档就是数据,属性就是列
elasticsearch比mysql查询数据有好处是因为它用了倒排索引:
意思是每个句子都拆分为多个单词,将单词标上这个句子的索引,
当有一个要检索的句子出现时,根据每个单词的记录数,得出相关性得分
在linux下安装es和kibana的坑:
下载的都是7.6.1的版本,下载完成后,分别进行配置
es:
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.6.1
kibana:
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 \
-d kibana:7.6.1
1)es分配端口失败,解决:重启docker后成功显示
2)
3)根据docker logs elasticsearch查看日记发现内存不够用了,free -h命令后发现可用内存只有100多m
解决:使用以下命令行清理内存,free -h发现有300m多了
echo 3 > /proc/sys/vm/drop_caches
4)es和kibana在linux下启动要很长时间,如果出现拒绝访问的字段,要等一段时间才能成功访问
5)出现kibana server is not ready yet的错误
解决:
查看日志docker logs kibana之后发现已经有了一个.kibana_1的索引,要删除该索引
最后成功启动es和kibana
es:
kibana: