搜索引擎—elasticSearch
安装
单节点
集群
es中的概念
索引(Index):
文档( document ):
elasticSearch中通用属性
- index_name:该属性是存储在索引中字段名称,若未指定,默认为字段定义的对象的名称,可忽略;
- index:该属性可取值analyzed或no,默认值为analyzed。当字段的类型为字符串型可以设为not_analyzed,便是该字段不可被搜索,只有完全匹配才能查到该字段。
- store:该属性的取值为yes或no,用于指定字段的原始值是否存入索引,默认值为no,表示不能在结果中返回字段的原始值(即使没有存储原始值,也可以使_source字段返回原始值),若果已建立索引,可以搜索该字段的内容。
- boost:该属性的默认值为1,用于定义该字段在文档中的重要性,值越大,越重要。
- null_value:该属性表示某字段在被索引写入数据时,默认可以忽略该字段。
- include_in_all:该属性表示指定的字段是否应被包含到_all字段中。默认情况下,启用该字段为包含所有的字段。
- elasticSearch中核心类型
#模式映射用于定义索引结构
#下面为定义的索引结构
{
"mappings": {
"post": {
"properties": {
"id": {"type":"long","store":"yes","precision_step":"0"},
"name": {"type":"string","store":"yes","index":"analyzed"},
"published": {"type":"date","store":"yes",
"precision_step":"0"},
"contents": {"type":"string","store":"no","index":"analyzed"}
}
},
"user": {
"properties": {
"id": {"type":"long","store":"yes","precision_step":"0"},
"name": {"type":"string","store":"yes","index":"analyzed"}
}
}
}
}
核心类型:字符串型(string)、数值型(number)、日期型(date)、布尔类型(boolean)、二进制型(binary)
字符串型(string)字段下还可以设置的属性
- term_vector:该属性表示是否对字段计算Lucene词向量,该属性的取值可以为no(默认值)、yes、with_offsets、with_positions、with_positions_offsets。是用高亮需要计算词向量。
- omit_norms:该属性表示是否进行Lucene norms计算,默认值为false,默认时指可以进行Lucene norms计算
- omit_term_freq_and_positions:该属性表示建索引时是否忽略词频和位置计算。默认值为false,若要忽略词频和位置计算,设置为true。(0.20开始弃用)
- index_options:该属性用于设置索引选项,可取值有docs(索引的文档数量)、freqs(索引的文档数量和词频)、positions(索引的文档数量、词频和单词出现的位置)。默认为freqs。(从0.20版本开始使用)
- ignore_above:该属性表示字段的最大长度,若超出,则忽略。
- analyzer:该属性用于索引和搜索的分析器的名称,默认是全局定义的分析器。
- index_analyzer:索引名称分析器
- search_analyzer:用于处理作用在该字段的查询的分析器的名称
数值型(number)代表了所有的数值类的字段类型,包括:字节型、短整型、整型、长整型、单精度浮点型、双精度浮点型,该类型下还存在的属性有:
- precision_step:该属性设置字段的每个取值生成的项数。值越低生成的项数越多,进行range查询时越快(但索引也会变大),默认值为4。
- ignore_malformed:该属性的取值可为true或false,默认false。该字段表示为是否忽略错误的数值,若忽略,应设为true。
日期型(date),该类型下存在的其他属性
- format:该属性用于指定日期格式。默认值dateOptionalTime
- precision_step:该属性设置字段的每个取值生成的项数。值越低生成的项数越多,进行range查询时越快(但索引也会变大),默认值为4。
- ignore_malformed:该属性的取值可为true或false,默认false。该字段表示为是否忽略错误的数值,若忽略,应设为true。
- 二进制型:二进制字段是指用base64来表示索引中存储的二进制数据,可用来存储二进制形式的数据,默认情况下,该类型字段只存储不索引。
在elasticSearch中,rest api数据操作
- get:获得所请求的对象当前状;
- post:改变当前对象的状态;
- put:创建对象;
- delete:销毁对象;
- head:仅用于提取对象的基本信息。