ES-index索引配置

这篇具有很好参考价值的文章主要介绍了ES-index索引配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Index Options

  index索引配置项使用。

index_options

  Index 有4中配置,可以控制倒排索引的内容。

  Text类型默认记录positions,其他默认docs。记录的内容越多,所占用的空间越大。

  Index 有4中配置如下:

  • docs
      记录doc id
  • freqs
      记录doc idterm frequencies
  • positions
      记录doc id / term frequencies / term positions
  • offsets
      记录doc id / term frequencies / term positions /character offsets
配置使用

  建立索引时使用index_options配置

put mapping_test
{
  "mappings":{
    "dynamic":"strict",
    "properties":{
      "title":{
        "type":"text",
        "index_options":"freqs"
      },
      "address":{
        "type":"object",
        "dynamic":"true"
      },
      "year":{
        "type":"long"
      }
    }
  }
}

  查询建立配置结果:

get mapping_test/_mappings
{
  "mapping_test" : {
    "mappings" : {
      "dynamic" : "strict",
      "properties" : {
        "address" : {
          "type" : "object",
          "dynamic" : "true"
        },
        "title" : {
          "type" : "text",
          "index_options" : "freqs"
        },
        "year" : {
          "type" : "long"
        }
      }
    }
  }
}

null_value

  如果需要对null值进行搜索,那么只有keyword类型支持设置null_value

  建立索引,在type=keyword属性增加null_value=null设置。

put mapping_test
{
  "mappings":{
    "dynamic":"strict",
    "properties":{
      "title":{
        "type":"text",
        "index_options":"freqs"
      },
      "content":{
        "type":"keyword",
        "null_value":"NULL"
      },
      "author":{
        "type":"keyword",
        "null_value":"NULL"
      },
      "address":{
        "type":"object",
        "dynamic":"true"
      },
      "year":{
        "type":"long"
      }
    }
  }
}

  写入数据,author字段要设置为null,否则doc没有该字段。

POST mapping_test/_doc/
{
    "title" : "es index options",
    "content" : "index_options|null_value",
    "author": null,
    "address" : {
      "province":"广东省",
      "city":"广州市"
      },
    "year":2022
}

  查询1

get mapping_test/_search?q=year:2022
# 输出结果
{
        "_index" : "mapping_test",
        "_type" : "_doc",
        "_id" : "F-PcPIABdHVKdYPW-cjt",
        "_score" : 1.0,
        "_source" : {
          "title" : "es index options",
          "content" : "index_options|null_value",
          "author" : null,
          "address" : {
            "province" : "广东省",
            "city" : "广州市"
          },
          "year" : 2022
        }
      }

  查询2

get mapping_test/_search?q=author:NULL
# 输出结果
{
        "_index" : "mapping_test",
        "_type" : "_doc",
        "_id" : "F-PcPIABdHVKdYPW-cjt",
        "_score" : 0.2876821,
        "_source" : {
          "title" : "es index options",
          "content" : "index_options|null_value",
          "author" : null,
          "address" : {
            "province" : "广东省",
            "city" : "广州市"
          },
          "year" : 2022
        }
      }

copy_to

  _all在ES 7中被copy_to所代替,目的是满足一些特定的搜索要求。

  copy_to 的作用是把数据拷贝到特定的字段。

  copy_to 描述的字段不会出现在_source 里面。

  copy_to使用,copy_to="full_date",把year、month、day字段数据复制到full_date字段,并且字段值通过空格分隔。例如:year=2022,month=4,day=18 full_date=2022 4 18.

put mapping_test
{
  "mappings":{
    "dynamic":"true",
    "properties":{
      "title":{
        "type":"text",
        "index_options":"freqs"
      },
      "content":{
        "type":"keyword",
        "null_value":"NULL"
      },
      "author":{
        "type":"keyword",
        "null_value":"NULL"
      },
      "address":{
        "type":"object",
        "dynamic":"true"
      },
      "year":{
        "type":"long",
        "copy_to":"full_date"
      },
      "month":{
        "type":"long",
        "copy_to":"full_date"
        
      },
      "day":{
        "type":"long",
        "copy_to":"full_date"
        
      }
    }
  }
}

  写入数据并且查询:文章来源地址https://www.toymoban.com/news/detail-401589.html

POST mapping_test/_doc/
{
    "title" : "es index options",
    "content" : "index_options|null_value",
    "author": null,
    "address" : {
      "province":"广东省",
      "city":"广州市"
      },
    "year":2022,
    "month":4,
    "day":18
}
# 通过full_date查询,能查询到数据,但没有full_date字段返回
get mapping_test/_search?q=full_date:2022 4 18
{
	"_index": "mapping_test",
	"_type": "_doc",
	"_id": "GuPsPIABdHVKdYPWRMhg",
	"_score": 1.0,
	"_source": {
		"title": "es index options",
		"content": "index_options|null_value",
		"author": null,
		"address": {
			"province": "广东省",
			"city": "广州市"
		},
		"year": 2022,
		"month": 4,
		"day": 18
	}
}

到了这里,关于ES-index索引配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • es elasticsearch 九 索引index 定制分词器 type结构后期弃用原因 定制动态映射 动态映射模板 零停机重建索引

    目录 索引index 定制分词器 Type底层结构及弃用原因 定制 dynamic mapping 定制dynamic mapping template 动态映射模板 零停机重建索引 生产环境应该度别名数据 索引index Put /index Stings 分片 Mapping 映射 Aliases 别名 增加 Put my_index2 {        \\\"settings\\\":{           \\\"number_of_shards\\\":3,      

    2024年02月06日
    浏览(41)
  • Elasticsearch Index Monitoring(索引监控)之Index Stats API详解

    index_current 当前正在执行索引操作的个数。 index_failed 失败的索引操作次数。 delete_total 执行删除索引操作的次数。 delete_time_in_millis 删除索引操作总耗时。 delete_current 当前正在执行删除索引操作的个数。 noop_update_total 空更新总次数(检测到空更新的次数)。 is_throttled 索引是

    2024年04月09日
    浏览(44)
  • MySQL索引(Index)

    数据库中的索引(Index)是一种数据结构,用于提高数据库查询性能和加速数据检索过程。索引可以看作是数据库表中某个或多个列的数据结构,类似于书中的目录,可以帮助数据库管理系统更快地定位和访问数据。它们是数据库优化的重要工具,特别是在处理大量数据时。

    2024年02月12日
    浏览(43)
  • MySQL基础(六)-索引(index)详解

    目录 一、什么是索引? 二、索引的实现原理 三、在MySQL中,主键、unique字段上会自动添加索引。 四、索引的创建与删除 创建索引: 删除索引: 五、查看SQL语句是否使用了索引 六、索引的失效 失效的第一种情况:模糊匹配当中以“%”开头 失效的第二种情况:使用or 失效的

    2024年02月16日
    浏览(44)
  • Hudi的核心概念 —— 索引(Index)

    Hudi 通过索引机制提供高效的 upserts,具体是将给定的 hoodie key(record key(记录键) + partition path)与文件 id(文件组)建立唯一映射。这种映射关系,数据第一次写入文件后保持不变, 所以,一个 FileGroup 包含了一批 record 的所有版本记录。Index 用于区分消息是 INSERT 还是 UPDAT

    2024年02月14日
    浏览(37)
  • elasticsearch index sorting ,索引排序

    es默认的搜索排序是_score,通过评分排序,但是对于大数据量,评分一致的情况下也还是会乱序,官方说可以使用_doc,但是这个索引插入顺序是按照分片存的,也就是为2 的顺序可能多个分片都存在。所以实测并不好用。博主在做大数据量的排序时候,使用 datatime字段排序 ,解

    2024年02月04日
    浏览(57)
  • SQL Server对象类型(2)——索引(Index)(3)

    说完了簇索引,接下来我们再说说非簇索引,与Oracle中的普通B-tree索引类似。SQL Server中的非簇索引,首先,其也是通过一个B-tree结构进行组织和存储,该结构同样分为根节点/数据页(Root Node/Page)、中间节点/数据页(Intermediate Nodes/Pages)和叶子节点/数据页(Leaf Nodes/Pages),

    2024年02月11日
    浏览(43)
  • MySQL查看索引语句:SHOW INDEX 详细讲解

    SHOW INDEX语句是MySQL中用于查看表索引信息的语句。它提供了有关表中索引的详细信息,包括索引名称、索引类型、关联的列等。以下是SHOW INDEX的详细说明: table_name: 需要查询索引的表名。 db_name: (可选)数据库名。如果你已经在某个数据库上下文中,可以省略此参数。

    2024年02月04日
    浏览(48)
  • MySQL(73)MySQL创建索引(CREATE INDEX)

    创建索引是指在某个表的一列或多列上建立一个索引,可以提高对表的访问速度。创建索引对 MySQL 数据库的高效运行来说是很重要的。 MySQL 提供了三种创建索引的方法: 1) 使用 CREATE INDEX 语句 可以使用专门用于创建索引的 CREATE INDEX 语句在一个已有的表上创建索引,但该语

    2024年02月09日
    浏览(40)
  • elasticsearch使用脚本 滚动关闭索引,更新index setting

         在旧的索引中更新mapping时,新增了分词器(分词器已经在模板中添加),但是在更新mapping时报错: 查看elasticsearch官网,发现不允许在已经存在的索引中动态更新分词器,只能先将索引close,更新分词器,然后再打开 Update index settings API | Elasticsearch Guide [8.3] | Elastic 2.1 由

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包