zoukankan      html  css  js  c++  java
  • 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);
            }

    文档结构的操作基本就是以上操作

  • 相关阅读:
    win7下安装、使用jBuiler2006
    c#:使用using关键字自动释放资源未必一定就会有明显好处
    silverlight:ScrollViewer的各种高度研究
    silverlight:对象拖动的优雅解决方案
    民航货运英文缩写
    "RDLC"报表参数传递及主从报表
    "RDLC报表"速成指南
    打印常识:A4纸张在显示器上应该要多少像素?
    Silverlight:获取ContentTemplate中的命名控件
    Silverlight:双向绑定综合应用多集合的依赖绑定
  • 原文地址:https://www.cnblogs.com/nik2011/p/5788074.html
Copyright © 2011-2022 走看看