作家
登录

全文搜索引擎ElasticSearch入门教程

作者: 来源: 2017-08-18 09:16:57 阅读 我要评论

 : "person"
  •   "_id" : "1"
  •   "_version" : 1, 
  •   "found" : true
  •   "_source" : { 
  •     "user" : "张三"
  •     "title" : "工程师"
  •     "desc" : "数据库治理" 
  •   } 
    1. $ curl 'localhost:9200/accounts/person/_search'  -d ' 
    2.   "query" : { "match" : { "desc" : "软件 体系" }} 
    3. }' 

    单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。

    2.2 Index

    Elastic 会索引所有字段,经由处理后写入一个反向索引(Inverted Index)。查找数据的时刻,直接查找该索引。

    本文大年夜零开端,讲解若何应用 Elastic 搭建本身的全文搜刮引擎。每一步都有具体的解释,大年夜家跟着做就能学会。

    所以,Elastic 数据治理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。

    下面的敕令可以查看当前节点的所有 Index。

    1. $ curl -X GET 'http://localhost:9200/_cat/indices?v' 

    2.3 Document


    Index 琅绫擎单条的记录称为 Document(文档)。很多条 Document 构成了一个 Index。

    Document 应用 JSON 格局表示,下面是一个例子。

    1.   "user""张三"
    2.   "title""工程师"
    3.   "desc""数据库治理" 

    同一个 Index 琅绫擎的 Document,不请求有雷同的构造(scheme),然则最好保持雷同,如许有利于进步搜刮效力。

    2.4 Type

    Document 可以分组,比如 weather 这个 Index 琅绫擎,可以按城市分组(北京和上海),也可以按气候分组(好天和雨天)。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document。

    不合的 Type 应当有类似的构造(schema),举例来说, id 字段不克不及在这个组是字符串,在另一个组是数值。这是与关系型数据库的表的 一个差别 。性质完全不合的数据(比如 products 和 logs )应当存成两个 Index,而不是一个 Index 琅绫擎的两个 Type(固然可以做到)。

    下面的敕令可以列出每个 Index 所包含的 Type。

    1. $ curl 'localhost:9200/_mapping?pretty=true' 

    根据 筹划 ,Elastic 6.x 版只许可每个 Index 包含一个 Type,7.x 版将会彻底移除 Type。

    三、新建和删除 Index

    新建 Index,可以直接向 Elastic 办事器发出 PUT 请求。下面的例子是新建一个名叫 weather 的 Index。

    1. $ curl -X PUT 'localhost:9200/weather' 

    办事器返回一个 JSON 对象,琅绫擎的 acknowledged 字段表示操作成功。

    1.   "acknowledged"

        推荐阅读

        半年过去,小程序的冰火真相

      【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索 看上去已经变得模糊的机会终于光降。来自一线的商户感触感染尤其明显:「我们很早就上线了本身的小法度榜>>>详细阅读


      本文标题:全文搜索引擎ElasticSearch入门教程

      地址:http://www.17bianji.com/lsqh/36787.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)