首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

ElasticSearch映射&分词

  • 25-04-24 15:01
  • 3636
  • 9362
blog.csdn.net

目录

弃用Type

why

映射

查询 mapping of index

创建 index with mapping

添加 field with mapping

数据迁移

1.新建 一个 index with correct mapping 

2.数据迁移 reindex data into that index

分词

POST _analyze

自定义词库

ik分词器

circuit_breaking_exception


弃用Type

ES 6.x 之前,Type 开始弃用

ES 7.x ,被弱化,仍支持

ES 8.x ,完全移除

弃用后,每个索引只包含一种文档类型

如果需要区分不同类型的文档,俩种方式:

  • 创建不同的索引
  • 在文档中添加自定义字段来实现。

why

Elasticsearch 的底层存储(Lucene)是基于索引的,而不是基于 Type 的。

在同一个索引中,不同 Type 的文档可能具有相同名称但不同类型的字段,这种字段类型冲突会导致数据不一致和查询错误。

  1. GET /bank/_search
  2. {
  3. "query": {
  4. "match": {
  5. "address": "mill lane"
  6. }
  7. },
  8. "_source": ["account_number","address"]
  9. }

从查询语句可以看出,查询是基于index的,不会去指定type。如果有不同type的address,就会引起查询冲突。


映射

Mapping 定义 doc和field 如何被存储和被检索

Mapping(映射) 是 Elasticsearch 中用于定义文档结构和字段类型的机制。它类似于关系型数据库中的表结构(Schema),用于描述文档中包含哪些字段、字段的数据类型(如文本、数值、日期等),以及字段的其他属性(如是否分词、是否索引等)。

Mapping 是 Elasticsearch 的核心概念之一,它决定了数据如何被存储、索引和查询。

查询 mapping of index

 _mapping

GET /bank/_mapping
  1. {
  2. "bank" : {
  3. "mappings" : {
  4. "properties" : {
  5. "account_number" : {
  6. "type" : "long"
  7. },
  8. "address" : {
  9. "type" : "text",
  10. "fields" : {
  11. "keyword" : {
  12. "type" : "keyword",
  13. "ignore_above" : 256
  14. }
  15. }
  16. },
  17. "age" : {
  18. "type" : "long"
  19. },
  20. "balance" : {
  21. "type" : "long"
  22. },
  23. "city" : {
  24. "type" : "text",
  25. "fields" : {
  26. "keyword" : {
  27. "type" : "keyword",
  28. "ignore_above" : 256
  29. }
  30. }
  31. },
  32. "email" : {
  33. "type" : "text",
  34. "fields" : {
  35. "keyword" : {
  36. "type" : "keyword",
  37. "ignore_above" : 256
  38. }
  39. }
  40. },
  41. "employer" : {
  42. "type" : "text",
  43. "fields" : {
  44. "keyword" : {
  45. "type" : "keyword",
  46. "ignore_above" : 256
  47. }
  48. }
  49. },
  50. "firstname" : {
  51. "type" : "text",
  52. "fields" : {
  53. "keyword" : {
  54. "type" : "keyword",
  55. "ignore_above" : 256
  56. }
  57. }
  58. },
  59. "gender" : {
  60. "type" : "text",
  61. "fields" : {
  62. "keyword" : {
  63. "type" : "keyword",
  64. "ignore_above" : 256
  65. }
  66. }
注:本文转载自blog.csdn.net的的文章"https://blog.csdn.net/weixin_73118927/article/details/145601538"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

132
搜索
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top