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 下使用 VS2005 编译 Chrome
    C++ Qt 05:Qt布局管理器 荒 木 博客园
    电商们都挺贼的,便宜的东西都不肯卖,比如牙膏,谁要用一支20多的呀,3-4块的中华没人进货,
    python 下载 国内
    爱慕集团以及爱慕在线科技有限公司简介 Aimerman
    Build Instructions (Windows) The Chromium Projects
    C++ Qt 03:MainWindow和Qt Gui编程
    今天 穿vancl的衣服撞衫了,ooooooooppppppppppppppps
    2006年世界杯小组赛日程表
    C++ 虚函数表解析
  • 原文地址:https://www.cnblogs.com/nik2011/p/5788074.html
Copyright © 2011-2022 走看看