全文搜索引擎 Elasticsearch 入门教程-Index

2018-12-02  本文已影响0人  Lc_fly

前言:

之前已经说过最近正在做数据建设,爬取数据之后经过处理,最终导入到ElasticSearch中,并编写公共接口以提供给后台进行检索操作;本来想等把ElasticSearch官方API都看过一遍,形成思维导图之后再整理出来,因为熟悉一个工具,它能做到的,比你知道它能做到的要全面也重要的多,但是整理了两章之后发现,内容真的太多了,这还仅仅只2类。。所以想还是先把基础用法记录下来,先一步步来了。

ElasticSearch

ElasticSearch 简介

Elasticsearch 是一个分布式可扩展的近实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  • 实时分析的分布式搜索引擎。
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

ElasticSearch 安装

安装比较简单,建议练手阶段安装Kibana,安装步骤参见之前写的博客:ElasticSearch安装

基本概念:

关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)
Elasticsearch ⇒ 索引(Index) ⇒ 文档(Docments) ⇒ 字段(Fields)

Elasticsearch ⇒ 索引(Index) ⇒ 文档(Docments) ⇒ 字段(Fields)

创建Index(索引)

既然删除了type,感觉将Index理解为table是不是更加合理些。。

创建Index语法如下:

PUT /userinfo?pretty
{
  "mappings": {
    "_doc": { 
      "properties": {
        "name": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word", "fields": {"raw":{"type":"keyword"}}},
        "content": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word"   },
        "org_type": { "type": "keyword"},
        "create_time":{"type":"date", "format": "epoch_second"}
      }
    }
  }
}

如果理解了上面的基本概念的话,这命令看起来应该不难理解,有几点需要提一下:

修改Index

删除Index

  //删除指定索引
  DELETE /userinfo
  //删除多个索引
  DELETE /index1,index2 或者 DELETE /index*
  //删除所有索引
  DELETE /_all 或者 DELETE /*

最基本的索引操作就到此结束,基本上能满足简单的基本需求,下面有一些扩展知识点,可以选择性的使用

aliases别名

索引别名就像一个快捷方式或软连接,或者是一个指向,都是最终指的同一个东西,别名 带给我们极大的灵活性,允许我们做下面这些:

以上便是Index别名的基本常用语法,完整API详见Aliases API

常用命令

禁用通配符

为了防止误操作 ,造成删库跑路的情况,建议在elasticsearch.yml 做如下配置:action.destructive_requires_name: true 这个设置使删除只限于特定名称指向的数据, 而不允许通过指定 _all 或通配符来删除指定索引库。你同样可以通过 Cluster State API 动态的更新这个设置。

新手推荐使用Kibana工具,带命令提示,很适合不熟悉命令的初学者,我也一直在用,只是博客的话,命令的表现形式感觉更好一些

kibana
上一篇 下一篇

猜你喜欢

热点阅读