搜索引擎—elasticSearch

安装

单节点

集群

es中的概念

  • 索引(Index):

  • 文档( document ):

  1. elasticSearch中通用属性

    • index_name:该属性是存储在索引中字段名称,若未指定,默认为字段定义的对象的名称,可忽略;
    • index:该属性可取值analyzed或no,默认值为analyzed。当字段的类型为字符串型可以设为not_analyzed,便是该字段不可被搜索,只有完全匹配才能查到该字段。
    • store:该属性的取值为yes或no,用于指定字段的原始值是否存入索引,默认值为no,表示不能在结果中返回字段的原始值(即使没有存储原始值,也可以使_source字段返回原始值),若果已建立索引,可以搜索该字段的内容。
    • boost:该属性的默认值为1,用于定义该字段在文档中的重要性,值越大,越重要。
    • null_value:该属性表示某字段在被索引写入数据时,默认可以忽略该字段。
    • include_in_all:该属性表示指定的字段是否应被包含到_all字段中。默认情况下,启用该字段为包含所有的字段。
  2. elasticSearch中核心类型
  1. #模式映射用于定义索引结构
  2. #下面为定义的索引结构
  3. {
  4. "mappings": {
  5. "post": {
  6. "properties": {
  7. "id": {"type":"long","store":"yes","precision_step":"0"},
  8. "name": {"type":"string","store":"yes","index":"analyzed"},
  9. "published": {"type":"date","store":"yes",
  10. "precision_step":"0"},
  11. "contents": {"type":"string","store":"no","index":"analyzed"}
  12. }
  13. },
  14. "user": {
  15. "properties": {
  16. "id": {"type":"long","store":"yes","precision_step":"0"},
  17. "name": {"type":"string","store":"yes","index":"analyzed"}
  18. }
  19. }
  20. }
  21. }

核心类型:字符串型(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:仅用于提取对象的基本信息。