ElasticSearch

ElasticSearch

        基于Lucene(基于java)的分布式开源搜索引擎。开箱即用,自带分布式协调管理功能,仅支持json文件格式,更注重核心功能,高级功能多由第三方插件提供:如图形化界面需要kibana支撑。实时查询更快(ES开发维护者较少,更新快,学习成本较高)。

基本环境要求

        jdk1.8

安装

        以windows版本为例,下载解压后即可使用。默认自成集群(一个也是集群)。

        修改默认配置文件:安装目录下 config/elasticsearch.yml 中修改即可

#绑定访问主机、端口
network.host: 192.168.0.1
http.port: 9200
#在启动此节点时,传递用于执行发现的主机的初始列表, "[::1]"表示localhost
discovery.seed_hosts: ["host1", "host2",, "[::1]",...]
#解决客户端跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"

启动

        安装目录bin下运行elasticsearch.bat 即可

访问

        直接访问 ip:port(默认9200) 即可

可视化界面安装

        这里用的是 elasticsearch-head-master,解压此包后在当前解压路径下开始安装:

        执行安装:(c)nmp install

        执行启动:npm run start

        访问:ip:9100(默认)

 查询工具

        大数据常用插件:kibana,类似的还有postman等等

分词插件

        以中文分词插件ik分词器为例:将插件解压到elasticsearch目录下plugins目中即可使用。

        查询分词路径:ip:9200/_analyze

        analyzer: 取值 ik_smart 时,表示最少切分;ik_max_word 时,表示最细切分。

         当然,ik分词器切分出的结果中并不一定有我们自己想要的词时,需要我们将想要的词加入到分词器的字典中。

        在分词器目录config中新建自己的 .dic文件,将需要添加的分词加入其中或者将分词加入已存在的其他 .dic文件中。如果是新建dic文件的话,需要将此dic文件加入分词配置文件  IKAnalyzer.cfg.xml  中:

 倒排索引

        相对于正向索引来说的。在正向索引中,需要扫描所有的文档,在每个文档中寻找关键字。

        倒排索引相反,通过先分析每个文档提取其中的关键字并建立关键字与文档ID之间的对应关系,找到关键字后直接去找对应的文档,而不是扫描所有文档后才能确定有哪些文档。如:

文档1,文档2,文档3
文档1,文档3,文档4,文档5
太阳系文档4

REST风格的操作方式

        GET / POST / DELETE,ip:port / 索引库名称 / [类型名称] / [文档id]     增删改查

        POST:ip:port / 索引库名称 / [类型名称] / [文档id] / _update    修改指定文档

        POST|GET:ip:port / 索引库名称 / [类型名称] / _search    查询指定类型的所有文档数据

索引库数据类型

        字符串:text、keyword;如果fields中的类型为keyword,则此字段不可拆分。

        数值:byte、short、integer、long、float、half float、scaled float、double

        日期:date

        布尔:boolean

        二进制:binary

        不指定数据类型(会根据数据类型默认):

         创建索引时指定字段数据类型:

查询操作

        单条件查询:

        query:查询条件

        match:模糊查询(包含)

        term:精确查询(不会分词,适合keyword、date等明确值的)

        _source:指定返回哪些字段

        sort:排序

        from:起始第多少条

        size:返回条数

        highlight:高亮

        多条件查询

         bool:多条件

        must | should | must_not:多条件之间的关系,对应 sql 中的 and | or | not

        filter:字段值的过滤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值