文档章节

elasticsearch

S
 Steve_Wang_
发布于 2017/05/09 08:15
字数 946
阅读 16
收藏 0

一、基本概念

1、索引(index)——一个存储关联数据的地方

2、分片(shard)是一个最小级别“工作单元(worker unit)”,它只是保存了索引中所有数据的一部分。分片就是一个Lucene实例,并且它本身就是一个完整的搜索引擎。

Node3包含了分别来自Node 1Node 2的一个分片,这样每个节点就有两个分片,这意味着每个节点上的分片将获得更多的硬件资源(CPU、RAM、I/O)。

 

二、搜索

  • 在类似于gender或者age这样的字段上使用结构化查询,join_date这样的字段上使用排序,就像SQL的结构化查询一样。
  • 全文检索,可以使用所有字段来匹配关键字,然后按照关联性(relevance)排序返回结果。
  • 或者结合以上两条。

 

三、分析(analysis),用于分析过程的是分析器(analyzer)

用于进行全文文本(Full Text)的分词,以建立供搜索用的反向索引。

字符过滤器 -> 2分词器 -> 3标记过滤

1:首先字符串经过字符过滤器(character filter),它们的工作是在标记化前处理字符串。字符过滤器能够去除HTML标记

2:下一步,分词器(tokenizer)被标记化成独立的词。一个简单的分词器(tokenizer)可以根据空格或逗号将单词分开(译者注:这个在中文中不适用)

3最后,每个词都通过所有标记过滤(token filters),它可以修改词(例如将"Quick"转为小写),去掉词(例如停用词像"a""and""the"等等),或者增加词(例如同义词像"jump""leap"

全文查询:

  • 当你查询全文(full text)字段,查询将使用相同的分析器来分析查询字符串,以产生正确的词列表。
  • 当你查询一个确切值(exact value)字段,查询将不分析查询字符串,但是你可以自己指定。

 

四、映射(mapping)

索引中每个文档都有一个类型(type)。 每个类型拥有自己的映射(mapping)或者模式定义(schema definition)。一个映射定义了字段类型,每个字段的数据类型,以及字段被Elasticsearch处理的方式

核心简单字段类型

Elasticsearch支持以下简单字段类型:

类型 表示的数据类型
String string
Whole number byteshortintegerlong
Floating point floatdouble
Boolean boolean
Date date

当你索引一个包含新字段的文档——一个之前没有的字段——Elasticsearch将使用动态映射猜测字段类型,这类型来自于JSON的基本数据类型,使用以下规则:

JSON type Field type
Boolean: true or false "boolean"
Whole number: 123 "long"
Floating point: 123.45 "double"
String, valid date: "2014-09-15" "date"
String: "foo bar" "string"

 

index字段:

index参数控制字符串以何种方式被索引。它包含以下三个值当中的一个:

解释
analyzed 首先分析这个字符串,然后索引。换言之,以全文形式索引此字段。
not_analyzed 索引这个字段,使之可以被搜索,但是索引内容和指定值一样。不分析此字段。
no 不索引这个字段。这个字段不能为搜索到。

 

(重要)关于更新映射:

你可以向已有映射中增加字段,但你不能修改它。如果一个字段在映射中已经存在,这可能意味着那个字段的数据已经被索引。如果你改变了字段映射,那已经被索引的数据将错误并且不能被正确的搜索到。我们可以更新一个映射来增加一个新字段,但是不能把已有字段的类型那个从analyzed改到not_analyzed

 

 

 

 

© 著作权归作者所有

S
粉丝 1
博文 10
码字总数 2627
作品 0
武汉
私信 提问

暂无文章

Spring系列教程八: Spring实现事务的两种方式

一、 Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。...

我叫小糖主
44分钟前
4
0
CentOS 的基本使用

1. 使用 sudo 命令, 可以以 root 身份执行命令, 必须要在 /etc/sudoers 中定义普通用户 2. 设置 阿里云 yum 镜像, 参考 https://opsx.alibaba.com/mirror # 备份mv /etc/yum.repos.d/CentO...

北漂的我
昨天
2
0
Proxmox VE技巧 移除PVE “没有有效订阅” 的弹窗提示

登陆的时候提示没有有效的订阅You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options. 用的是免费版的,所以每次都提示......

以谁为师
昨天
3
0
Java设计模式之外观模式(门面模式)

什么是外观模式   外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口...

须臾之余
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部