nuget引用NEST

new一个客户端

源码可查ElasticClient.cs

new一个ElasticClient有多种方式

第一种

ES地址是http://localhost:9200,可以直接new,如下所示

  1. var client = new ElasticClient();

源码中显示 new ElasticClient()

  1. public ElasticClient() : this(new ConnectionSettings(new Uri("http://localhost:9200"))) { }

第二种

由此可以推断一下,如果本地安装的使用不是9200端口或者远程连接ES服务端,可以这么写

  1. string uri = "http://example.com:9200";
  2. var settings = new ConnectionSettings(new Uri(uri)).
  3. DefaultIndex("people");
  4. var client = new ElasticClient(settings);

第三种

  1. Uri uri = new Uri("http://example.com:9200");
  2. var client = new ElasticClient(uri);

第四种 连接池

这里只举例官方文档中推荐使用的SniffingConnectionPool

SniffingConnectionPool线程安全,开销很小,允许运行时reseeded。不明白reseeded的运行机制,留个疑问。

  1. public static ElasticClient GetElasticClientByPool()
  2. {
  3. var uris = new[]
  4. {
  5. new Uri("http://localhost:9200"),
  6. new Uri("http://localhost:9201"),
  7. new Uri("http://localhost:9202"),
  8. };
  9. var connectionPool = new SniffingConnectionPool(uris);
  10. var settings = new ConnectionSettings(connectionPool)
  11. .DefaultIndex("people");
  12. var client = new ElasticClient(settings);
  13. return client;
  14. }

参考:elastic官方文档

创建索引

判断索引是否存在

  1. var existsResponse = _elasticClient.IndexExists(_indexName);
  2. var indexExists = existsResponse.Exists

indexExists 为true,索引存在;为false,索引不存在。

创建索引并初始化索引配置和结构

  1. //基本配置
  2. IIndexState indexState = new IndexState
  3. {
  4. Settings = new IndexSettings
  5. {
  6. NumberOfReplicas = 1,//副本数
  7. NumberOfShards = 6//分片数
  8. }
  9. };
  10. ICreateIndexResponse response = _elasticClient.CreateIndex(_indexName, p => p
  11. .InitializeUsing(indexState)
  12. .Mappings(m => m.Map<People>(r => r.AutoMap()))
  13. );
  14. if (response.IsValid)
  15. {
  16. Console.WriteLine("索引创建成功");
  17. }
  18. else
  19. {
  20. Console.WriteLine("索引创建失败");
  21. }

注意:索引名称必须为小写,如果含有大写字母,异常信息为"Invalid index name [TEST], must be lowercase"

demo地址:CreateIndex

创建索引CreateIndex的更多相关文章

  1. lucene创建索引简单示例

    利用空闲时间写了一个使用lucene创建索引简单示例, 1.使用maven创建的项目 2.需要用到的jar如下: 废话不多说,直接贴代码如下: 1.创建索引的类(HelloLucene): packa ...

  2. lucene全文搜索之四:创建索引搜索器、6种文档搜索器实现以及搜索结果分析(结合IKAnalyzer分词器的搜索器)基于lucene5.5.3

    前言: 前面几章已经很详细的讲解了如何创建索引器对索引进行增删查(没有更新操作).如何管理索引目录以及如何使用分词器,上一章讲解了如何生成索引字段和创建索引文档,并把创建的索引文档保存到索引目录,到这 ...

  3. lucene全文搜索之三:生成索引字段,创建索引文档(给索引字段加权)基于lucene5.5.3

    前言:上一章中我们已经实现了索引器的创建,但是我们没有索引文档,本章将会讲解如何生成字段.创建索引文档,给字段加权以及保存文档到索引器目录 luncene5.5.3集合jar包下载地址:http:// ...

  4. lucene全文搜索之二:创建索引器(创建IKAnalyzer分词器和索引目录管理)基于lucene5.5.3

    前言: lucene全文搜索之一中讲解了lucene开发搜索服务的基本结构,本章将会讲解如何创建索引器.管理索引目录和中文分词器的使用. 包括标准分词器,IKAnalyzer分词器以及两种索引目录的创 ...

  5. linux环境给mongodb创建索引

    首先我们来了解索引,如果有基础的可以直接看最后面的操作. 可参照 DoNotStop 的CSDN 博客 ,全文地址请点击: https://blog.csdn.net/u013725455/artic ...

  6. MongoDB 创建索引的语法

    1.为普通字段添加索引,并且为索引命名 db.集合名.createIndex( {"字段名": 1 },{"name":'idx_字段名'}) 说明: (1)索 ...

  7. Elasticsearch5.x创建索引(Java)

    索引创建代码使用官方给的示例代码,我把它在java项目里实现了一遍. 官方示例 1.创建索引 /** * Java创建Index */ public void CreateIndex() { int ...

  8. 在MongoDB中执行查询、创建索引

    1. MongoDB中数据查询的方法 (1)find函数的使用: (2)条件操作符: (3)distinct找出给定键所有不同的值: (4)group分组: (5)游标: (6)存储过程. 文档查找 ...

  9. mongo之 前后台创建索引 --noIndexBuildRetry

    在数据量超大的情形下,任何数据库系统在创建索引时都是一个耗时的大工程.MongoDB也不例外.因此,MongoDB索引的创建有两个选择,一个是前台方式,一个是后台方式.那这两种方式有什么差异呢,在创建 ...

随机推荐

  1. Oracle系列-锁表与解锁解决方案(大招版)-解决问题才是王道

    [Oracle系列-锁表与解锁解决方案(大招版)] --1查看被锁的表 select b.owner,b.object_name,a.session_id,a.locked_mode from v$l ...

  2. Postman----Newman的使用

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #fffff ...

  3. 新手篇丨Python任意网段Web端口信息探测工具

    你学习Python的目的是什么?是想写爬虫爬取数据(数据.图片等内容),还是想自写自动化的小工具,又或是作为一个新手小白单纯的欣赏这门语言呢? 今天i春秋分享的是一篇关于多线程工具的文章,工具使用效率 ...

  4. 干货|一个案例学会Spring Security 中使用 JWT

    在前后端分离的项目中,登录策略也有不少,不过 JWT 算是目前比较流行的一种解决方案了,本文就和大家来分享一下如何将 Spring Security 和 JWT 结合在一起使用,进而实现前后端分离时的 ...

  5. ES 15 - Elasticsearch中的数据类型 (text、keyword、date、geo等)

    目录 1 核心数据类型 1.1 字符串类型 - string(不再支持) 1.1.1 文本类型 - text 1.1.2 关键字类型 - keyword 1.2 数字类型 - 8种 1.3 日期类型 ...

  6. No module named MySQLdb

    解决办法 easy_install mysql-python (mix os) pip install mysql-python (mix os/ python 2) pip install mysq ...

  7. [译]PEP 342--增强型生成器:协程

    PEP原文 : https://www.python.org/dev/peps/pep-0342/ PEP标题: Coroutines via Enhanced Generators PEP作者: G ...

  8. 企业移动应用和Smobiler

    www.smobiler.com     什么是企业移动应用?     能够通过一种方式来为客户.合作伙伴和员工交付信息和服务,从而帮助其增加收入,提高业务敏捷性和生产力的移动端产品,我们称之为企业移 ...

  9. DRUID连接池配置详情

    DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针 ...

  10. jqgrid postData post方式累加参数,缓存了原来的数据

    今天做项目的时候发现一个问题,我们有一个筛选项,一个是VIP用户,一个是普通用户,还有一个是全部用户,首先看下我们的selection <select name="" id= ...