ElasticSearch添加索引
1. 编写索引内容
节点解释:
settings:配置信息
"number_of_replicas": 0 不需要备份(单节点的ElasticSearch使用)
"mappings": 映射内容
"dynamic":false 是否动态索引,这里使用的是false,表示索引的固定的,不需要修改。
"properties": 属性结构内容
"index":"true" 需要分词处理的结构
type对应的数据类型,text文本(长字符串),integer数字,date时间,keyword单词
elasticsearch 6.X版本的索引文件
{ "settings":{ "number_of_replicas": 0 }, "mappings":{ "house":{ "dynamic":false, "properties":{ "houseId":{"type":"long"}, "title":{"type":"text", "index":"true"}, "price":{"type":"integer"}, "area":{"type":"integer"}, "createTime":{"type":"date","format":"strict_date_optional_time||epoch_millis"}, "lastUpdateTime":{"type":"date", "format":"strict_date_optional_time||epoch_millis"}, "cityEnName":{"type":"keyword"}, "regionEnName":{"type":"keyword"}, "direction":{"type":"integer"}, "distanceToSubway":{"type":"integer"}, "subwayLineName":{"type":"keyword"}, "subwayStationName":{"type":"keyword"}, "tags":{"type":"text"}, "district":{"type":"keyword"}, "description":{"type":"text", "index":"true"}, "layoutDesc":{"type":"text", "index":"true"}, "traffic":{"type":"text", "index":"true"}, "roundService": {"type": "text", "index": "true"}, "rentWay":{"type":"integer"} } } } }
elasticsearch 7.X版本的索引文件
{
"settings":{
"number_of_replicas": 0
},
"mappings":{
"dynamic":false,
"properties":{
"title":{"type":"text", "index":"true"},
"price":{"type":"integer"},
"area":{"type":"integer"},
"createTime":{"type":"date","format":"strict_date_optional_time||epoch_millis"},
"lastUpdateTime":{"type":"date", "format":"strict_date_optional_time||epoch_millis"},
"cityEnName":{"type":"keyword"},
"regionEnName":{"type":"keyword"},
"direction":{"type":"integer"},
"distanceToSubway":{"type":"integer"},
"subwayLineName":{"type":"keyword"},
"subwayStationName":{"type":"keyword"},
"tags":{"type":"text"},
"district":{"type":"keyword"},
"description":{"type":"text", "index":"true"},
"layoutDesc":{"type":"text", "index":"true"},
"traffic":{"type":"text", "index":"true"},
"roundService": {"type": "text", "index": "true"},
"rentWay":{"type":"integer"}
}
}
}
2. 创建索引
使用Postmen发送创建索引请求
(1)地址栏后半段是索引名称
(2)请求使用的PUT方式,选择Body,raw形式,采用JSON格式发送
创建成功的显示结果:
{ "acknowledged": true, "shards_acknowledged": true, "index": "house" }
在ElasticSearch-Head里查看结果:
3. 创建索引时的报错:
错误1:Root mapping definition has unsupported parameters
原因:ElasticSearch7.X之后的版本默认不在支持指定索引类型,默认索引类型是_doc(隐含:include_type_name=false),所以在mappings节点后面,直接跟properties就可以了。
问题2:Could not convert [title.index] to boolean
原因:也是新版本的问题,之前版本的index属性写法是"analyze",现在只能设置true, false, "true","false"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通