http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2744|回复: 1

[Elasticsearch] 3-Elasticsearch之轻量搜索

[复制链接]
发表于 2018-12-1 10:46:03 | 显示全部楼层 |阅读模式


教程目录帖

http://www.sufeinet.com/thread-24643-1-1.html


3-Elasticsearch之轻量搜索


单个文档检索

    上次的文章我们已经将一些雇员的信息存储到了Elasticsearch中,下面我们就应该是专注于对应用需求的处理了。我们的第一个需求是,查询一个雇员的信息

使用Elasticsearch非常简单,一个Http get就可以搞定了。我们指定一个文档的地方 ----索引库,类型和ID。就可以查询了,代码如下

[Shell] 纯文本查看 复制代码
GET /megacorp/employee/1


返回的结果中包含了一些文档的元数据,其实的_source属性,john smith就是雇员的Josn格式文档

如下
[Shell] 纯文本查看 复制代码
{
  "_index" :   "megacorp",
  "_type" :    "employee",
  "_id" :      "1",
  "_version" : 1,
  "found" :    true,
  "_source" :  {
      "first_name" :  "John",
      "last_name" :   "Smith",
      "age" :         25,
      "about" :       "I love to go rock climbing",
      "interests":  [ "sports", "music" ]
  }
}


引申意义

[HTML] 纯文本查看 复制代码
将 HTTP 命令由 PUT 改为 GET 可以用来检索文档,

同样的,可以使用 DELETE 命令来删除文档,以及使用 HEAD 指令来检查文档是否存在。如果想更新已存在的文档,只需再次 PUT 。


轻量搜索

    一个get是相当简单的,可能直接得一指定的文档,我们给它增加一点难度,比如一个简单的条件查询

比如我们先查询所有的雇员信息
[C#] 纯文本查看 复制代码
GET /megacorp/employee/_search


可以看到,我们使用到了索引库megacorp以及类型employee,但与批定一个文档ID搜索不同的是,这次我们使用了_search。返回了所有个三个文档,放到了数组,hits中,一页或者是叫一个搜索默认最快是返回10条数据。这个可以自行调整
[Shell] 纯文本查看 复制代码
{
   "took":      6,
   "timed_out": false,
   "_shards": { ... },
   "hits": {
      "total":      3,
      "max_score":  1,
      "hits": [
         {
            "_index":         "megacorp",
            "_type":          "employee",
            "_id":            "3",
            "_score":         1,
            "_source": {
               "first_name":  "Douglas",
               "last_name":   "Fir",
               "age":         35,
               "about":       "I like to build cabinets",
               "interests": [ "forestry" ]
            }
         },
         {
            "_index":         "megacorp",
            "_type":          "employee",
            "_id":            "1",
            "_score":         1,
            "_source": {
               "first_name":  "John",
               "last_name":   "Smith",
               "age":         25,
               "about":       "I love to go rock climbing",
               "interests": [ "sports", "music" ]
            }
         },
         {
            "_index":         "megacorp",
            "_type":          "employee",
            "_id":            "2",
            "_score":         1,
            "_source": {
               "first_name":  "Jane",
               "last_name":   "Smith",
               "age":         32,
               "about":       "I like to collect rock albums",
               "interests": [ "music" ]
            }
         }
      ]
   }
}


在这里有两部分是 我们应该注意的,那些文档是匹配的,还包括文档本身,几乎是满足了一个搜索的全部需要
这个前者在后面我们会叫它”命中

    我们增加一下条件 ,搜索姓为“Smith”的雇员,这里我们需要使用到一个高级一点的搜索,通过命令行也是很容易完成的。
主要是要用到一个查询字符串_query-string_  直接使用get也是比较简单
看代码
[Shell] 纯文本查看 复制代码
GET /megacorp/employee/_search?q=last_name:Smith

这就是条件了,
[Shell] 纯文本查看 复制代码
last_name:Smith

这里也是要使用_search和一个q参数把参数传入

看一下结果
[C#] 纯文本查看 复制代码
{
   ...
   "hits": {
      "total":      2,
      "max_score":  0.30685282,
      "hits": [
         {
            ...
            "_source": {
               "first_name":  "John",
               "last_name":   "Smith",
               "age":         25,
               "about":       "I love to go rock climbing",
               "interests": [ "sports", "music" ]
            }
         },
         {
            ...
            "_source": {
               "first_name":  "Jane",
               "last_name":   "Smith",
               "age":         32,
               "about":       "I like to collect rock albums",
               "interests": [ "music" ]
            }
         }
      ]
   }
}


好了简单的查询就到了这里了,有兴趣的朋友跟着我的文章一起学习吧。

我也是一个初学者
记录下这些笔记也是方便后面不会的时候查看一下。









1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-12-1 11:38:52 | 显示全部楼层
收藏下,以后肯定用得到
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-3-28 17:29

© 2014-2021

快速回复 返回顶部 返回列表