基本认识:es要安装在服务器上,我们要导入数据进es,需要的时候,java程序访问es,执行查询命令,获取结果
基本流程:
类似于百度搜索
我们有如下资源:
Doc1:我要当县长 (我 县长)
Doc2:我要吃龙虾 (我 吃 龙虾)
Doc3:我想学编程 (我 学 编程)
ES存储时将他们分词
索引的建立(倒排索引)
我:Doc1,Doc2,Doc3
吃:Doc2
学:Doc3
县长:Doc1
Doc1,2,3这个信息,相当于主键,mysql就是对它建立索引,主键查出相应的记录,数据量少的时候效率高
当实体数据多到一定程度(两倍于常用汉字,词组数量时,比如英文大概12000个词汇,而文章可能十几万).
使用方面:
1.安装过程
(1)上传(或下载)es和分词器的安装包(注意,版本是敏感的,这俩版本还得一样)
(2)解压es,修改这么几个地方
jvm.options:Xms和Xmx默认是1g,推荐是4g,如果服务器不行,改小一点,比如512m
elasticsearch.yml:path.data:数据目录位置,path.logs:日志目录位置,network.host:允许访问的地址
改完了,看看你这两个文件夹有没有,没有就新建。
(3)新建用户
es不可以用root用户启动,adduser xxxx创建一个用户,一路回车,给一个密码。
(4)使用这个新建的用户,在bin下面
./elasticsearch就可以开启了
可能报错:vm.max_map_count[xxxx]is too low …at least [ccccc]
如果报这个错,就以root用户身份去改:
/etc/sysctl.conf文件,增加这一行 vm.max_map_count=ccccc 改完,sysctl -p 执行命令生效,再换回新建的用户去启动
(5)外部访问:你的ip:9200,看到you know for search