ElasticSearch疯狂学习第一季

ElasticSearch疯狂学习第一季


边学边用,更加深刻的理解ealsticSearch。

简易搜索:
GET /索引名/类型/_serch  (_search全文搜索  出 全部数据返回)

获取指定信息
GET /索引名/类型/_serch?q=字段名:值


Query DSL搜索
Elasticsearch 提供了更加丰富灵活的查询语言,它被称作 Query DSL,通过它你可以完成更加复杂、强大的搜索任务。
GET /索引名/类型/_search
{
    "query" : {
        "match" : {
            "字段名" : "值"
        }
    }
}
使用了match匹配获取信息。


更复杂的查询,添加条件:
{
    "query" : {
        "filtered" : {
            "filter" : {
                "range" : {
                    "字段名" : { "gt" : 30 } ----条件是大于30
                }
            },
            "query" : {
                "match" : {
                    "字段名" : "值"   
                }
            }
        }
    }
}

更强大的功能:全文搜索

{
    "query" : {
        "match" : {
            "about" : "匹配值"
        }
    }
}
查询所有关于匹配值的信息
最后会返回一个评分结果_score,也就是匹配度。

也可以使用更精确的匹配模式:
{
    "query" : {
        "match_phrase" : {
            "about" : "匹配值"
        }
    }
}
全文检索精确匹配包含匹配值内容的信息-match_phrase。

高亮返回结果:
{
    "query" : {
        "match_phrase" : {
            "about" : "匹配值"
        }
    },
    "highlight": {
        "fields" : {
            "about" : {}
        }
    }
}
新增highlight标签,当返回对应结果时,会被包裹在highlight中。




统计汇总:(类似sql中的group by)

{
  "aggs": {
    "all_interests": {
      "terms": { "field": "字段名" }
    }
  }
}
汇总对应的字段名(类似group by 字段)获取对应值。

其功能之强大,还可以匹配某种情况下的平均值,除此之外还有很多功能,比如建议、地理定位、过滤、模糊以及部分匹配等



在elasticsearch中index索引代表一个数据库, type类型代表数据库中的一张表,
_id则代表一行数据。


POST  /索引名/类型/ID/_update   ----更新操作

Delete  /索引名/类型/ID -----删除操作

PUT /索引名/类型/ID  -----创建操作  (不带ID则会自动创建一个22位字符的随机ID),如果存在则执行更新操作


使用脚步进行更新:
在脚本中称为:ctx._source
{
   "script" : "ctx._source.views+=1"
}

更新一篇可能不存在的文档

{
   "script" : "ctx._source.views+=1",
   "upsert": {
       "views": 1
   }
}
初始化views,加载是初始化views为1 当下次在请求时就开始执行脚本内容


查询DSL:

GET /索引名/类型名?q=查询条件信息(可以为:q=+name:cx -applcde:123456)

前缀 "+" 表示 必须要 满足我们的查询匹配条件,而前缀 "-" 则表示 绝对不能 匹配条件。
没有 + 或者 - 的表示可选条件。匹配的越多,文档的相关性就越大。

-是表示不匹配条件  不匹配applcde为123456的  匹配名字为cx的



更加复杂的查询------------------------------------学习

+name:(mary john) +date:>2014-09-10 +(aggregations geo)
名字必须包含mary john 和时间必须为2014-09-10 , _all字段中包含aggregations geo的







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值