美文网首页
《ElasticSearch权威指南》读书笔记

《ElasticSearch权威指南》读书笔记

作者: 米达麦亚 | 来源:发表于2017-03-09 16:06 被阅读0次

    ES是一个分布式可扩展的实时搜索和分析引擎。
    使用场景:全文搜索,结构化数据,统计,查询定位,地理定位,自动完成,查找提示等

    入门

    ES基于lecene
    lecene是个框架,需要使用java,并在程序中集成lucene
    ES用java编写,在lecene基础上,使用restful API,无需了解lucene原理
    而且是ES是分布式
    ES从lucene上的抽象层发展起来

    安装

    先安装java
    安装ES
    安装sense

    与ES通信

    java api,ES内置
    通过http向restful api传送json,curl

    启程

    ES是面向文档型数据库,而不是传统关系数据库
    ES的数据格式是JSON
    类比关系数据:
    数据库-》表-》行-》列
    索引-》类型-》文档-》字段
    索引作为名称,类似关系型DB中数据库,做动词类似insert命令,关系型DB中的索引在ES中对应的是反向索引

    基本搜索

    存储文档:put /a/b/1 a为索引,b为类型,1是id
    获取文档:get /a/b/1
    delete删除,head查询是否存在,替换还是put
    全体检索 get /a/b/_search
    带关键字检索 get /a/b/_search?q=xx
    DSL(领域特定语言)搜索,搜索条件为json串
    带过滤的搜索,json中有filtered,下层为filter和match
    全文搜索:_score代表相关性评分
    短语整体匹配:match_phrase
    高亮搜索:highlight,返回结果用<em></em>包住
    汇总统计:aggs,类似sql中group by

    搜索

    空白搜索

    不加搜索条件即可,默认只返回前10个结果
    hits:匹配的文档。total代表匹配的数量,子hits中包括了index,type,id和具体结果
    _score是相关性,没加查询条件就是1.max_score就是_score中最大值
    took代表请求耗费的时间,单位毫秒
    shards是参与查询的分片数,及成功和失败的个数
    time_out告诉我们是否查询超时。我们可以在查询中设置这个参数。timeout不是终止查询,而是返回指定时间内已经查到的数据

    多索引多类型

    在/_search前添加路径,可以指定索引和类型
    比如/gb,us/user,tweet/_search就是搜索索引gb和us中类型us及类型tweet的所有文档
    size参数是每次返回的结果数,from是起始的结果编号
    页码过大会有问题。因为请求最大100条,是每个节点都请求100条,然后再整体处理。

    搜索api分两种,一种是精简版的,一种json的完整版
    ?q=a:b 查询所有字段a值为b的文档 +c:d 增加条件 -e:f 绝对不匹配条件
    _all全匹配,在路径中可以使用
    举例:字段name包括mary或john,date>2014-9-10,_all字段包含aggregations或geo
    +name:(mary john) +date:>2014-09-10 +(aggregations geo)

    相关文章

      网友评论

          本文标题:《ElasticSearch权威指南》读书笔记

          本文链接:https://www.haomeiwen.com/subject/ddzwgttx.html