ElasticSearch全文搜索引擎基本使用

一.概念:

ES是一个分布式的全文搜索引擎;使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐Lucene的复杂性,从而让全文搜索变得简单。

        Lucene是apache下的一个开源的全文检索引擎工具包(一堆jar包)。

二.特点:

1.分布式的实时文件存储,底层有一秒的延迟设置

2.处理PB级结构化或非结构化数据

3.简单的 RESTful API通信方式,支持多客户端

        注:1.Lucene只支持Java,ES支持多种语言

             2.单体/小项目使用Lucene ,大项目,分布式项目使用ES

三.倒排索引:

1. 文档分词

2. 关键词排序

3. 建立索引

4. 查询处理

四.Kinbana

1.概念:

        开源分析和可视化平台,用搜索、分析和可视化存储Elasticsearch索引中的数据。

2.配置:      

        解压并编辑config/kibana.yml,设置elasticsearch.url的值为已启动的ES

        默认情况下,Kibana会链接本地的默认ES http://localhost:9200 ,如果需要修改链接的ES服务器,通过修改安装目录下 config/kibana.yml,将配置项 #elasticsearch.url: "http://localhost:9200" 取消注释即可修改连接的ES服务器地址。

3.文档的CRUD

        (1)添加        

        PUT 索引库/文档类型/文档id
        {JSON格式,文档原始数}

        (2)查询

        GET 索引库/类型/文档ID 

        GET _search 查询所有

        (3)删除

        DELETE {index}/{type}/{id}

        (4)修改

        整体修改:文档修改过程:1.标记删除旧文档,2.添加新文档

        与添加语法一致

        局部修改:局部修改过程: 1.检索旧文档 , 2.修改文档 ,3.标记删除旧文档 , 4.添加新文档

        POST {index}/{type}/{id}/_update

        

五.DSL查询与DSL过滤

1.概念:

DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现。DSL有两部分组成:DSL查询和DSL过滤。

        注:用于复杂查询

2.区别:

(1)需要模糊查询的使用DSL查询 ,需要精确查询的使用DSL过滤,在开发中组合使用(组合查询) ,关键字查询使用DSL查询,其他的都是用DSL过滤。

(2)过滤结果可以缓存并应用到后续请求。 查询语句同时匹配文档,计算相关性,所以更耗时,且不缓存。

3.关键字:

  • query : 查询,所有的查询条件在query里面

  • bool : 组合搜索bool可以组合多个查询条件为一个查询对象,这里包含了 DSL查询和DSL过滤的条件

  • must : 必须匹配 :与(must) 或(should) 非(must_not)

  • match:分词匹配查询,会对查询条件分词 , multi_match :多字段匹配

  • filter: 过滤条件

  • term:词元查询,不会对查询条件分词

  • from,size :分页

  • _source :查询结果中需要哪些列

  • sort:排序

  • range:范围 gt:> gte:>= lt:< lte:<=

  • prefix:前缀

  • wildcard:通配符

4.使用:

 六.分词器

        注:英文通过空格分词.中文分词器这里使用IK分词器;版本与ES一致

1.使用:

将解压后的内容放置于ES根目录/plugins/ik

2.关键字:

IK分词器指定:ik_smart ; ik_max_word , ik_max_word 相比 ik_smart 来说会将文本做最细粒度的拆分。

七.文档类型映射

1.概念:

ES的文档映射(mapping)机制用于进行字段类型确认,将每个字段匹配为一种确定的数据类型。

2.基本数据类型:

字符串text(分词,默认) ;keyword(不分词) ;
数字long(默认)integershortdoublefloat
日期date
逻辑boolean

3.映射:

        单类型映射:

        

解释:给aigou索引库中的是goods类型创建映射 ,id指定为long类型 , name指定为text类型(要分词),analyzer分词使用ik,查询分词器也使用ik

        多类型映射:

        

解释:同时给user和dept创建文档映射

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值