ElasticSearch操作实例大全---文档结构操作(2)
接上一篇 ElasticSearch操作实例大全---文档结构操作(1)
前提条件--开发环境已安装 (自行百度)
客户端用的是nest
学习elasticSearch主要是要掌握像sqlserver要会操作数据结构的增删改和数据的增删改查,这里主要写elasticSearch的文档结构操作和文档数据操作
一、如果你已经建好了索引,但是需求改变需要新增一个字段,那就改了之后要进行映射,映射主要是确定字段的数据类型
/// <summary> /// 创建mapping /// </summary> /// <typeparam name="T">需要创建的mapping类型</typeparam> /// <param name="indexName">索引名</param> /// <param name="analyzer">分词器</param> /// <returns></returns> public bool AddMapping<T>(string indexName = null, string analyzer = "ik") where T : class { if (string.IsNullOrWhiteSpace(indexName)) { indexName = IndexName; } //对参数进行判断 if (string.IsNullOrWhiteSpace(indexName)) { OriginalException = new Exception("索引名不允许为空"); return false; } //如果索引名称已经存在,则不插入 if (!IsExists(indexName)) { OriginalException = new Exception("索引不存在"); return false; } var response = Client.Map<T>(m => m.MapFromAttributes().IndexAnalyzer(analyzer).Index(indexName)); return Helper.ConvertIResponse(response, OriginalException); }
二、刷新索引
/// <summary> /// 刷新索引 /// </summary> /// <returns></returns> public bool Refresh() { var response = Client.Refresh(r => r.Index(IndexName)); return Helper.ConvertIResponse(response, OriginalException); }
三、优化索引
/// <summary> /// 优化索引 /// </summary> /// <returns></returns> public bool Optimize(long max_num_segments = 1, bool flush = true) { var response = Client.Optimize(o => o .Index(IndexName) .MaxNumSegments(max_num_segments) .Flush(flush) ); return Helper.ConvertIResponse(response, OriginalException); }
四、关闭索引
/// <summary> /// 关闭索引 /// </summary> /// <param name="indexName">索引名</param> /// <returns></returns> public bool Close() { var response = Client.CloseIndex(IndexName);
return Helper.ConvertIResponse(response, OriginalException); }
五、打开索引
/// <summary> /// 打开索引 /// </summary> /// <param name="indexName">索引名</param> /// <returns></returns> public bool Open() { var response = Client.OpenIndex(IndexName); return Helper.ConvertIResponse(response, OriginalException); }
文档结构的操作基本就是以上操作