通过Nuget安装好Nest的相关Dll,之后我们就可以开始了,

1.初始化Nest客户端

string indexName = "customer";
Uri uri = new Uri("http://localhost:9200");
ConnectionSettings settings = new ConnectionSettings(uri);
settings.DisableDirectStreaming().DefaultIndex(indexName);
ElasticClient client = new ElasticClient(settings);

2.创建一个Customer索引

    dynamic response = client.GetIndex(indexName);
if(!response.IsValid)
{
response = client.CreateIndex("customer");
Console.WriteLine(response);
}

3.创建文档

   var company = new Company { CompanyID=2, Name="IBM" };
//创建文档并指定索引,和文档ID
response = client.Index(company, i => i.Index(indexName).Id(company.CompanyID));
//创建文档并指定索引,文档类型,未指定文档ID,ElasticSearch会帮你生成一个随机的ID
response = client.Index(company, i => i.Index(indexName));
//这里没有显示指定索引,所以使用的客户端初始化默认索引,如果没有默认索引,就会发生错误
response = client.Index(company);

4.修改文档1

根据CompanyID来修改文档,如果存储里存在一个CompanyID等于2的文档,他就会用新的替换旧的,否则就创建一个。

所以叫创建式修改比较合适

 company = new Company { CompanyID = 2, Name = "联想" };
//修改文档
response = client.Index(company, i => i.Id(company.CompanyID));

5.修改指定版本号的文档(对乐观锁的实现)

  company = new Company { CompanyID = 2, Name = "联想" };
//修改指定版本的文档
response = client.Index(company, i => i.Id(company.CompanyID).Version(1));

6.删除文档

//根据特定的条件来删除文档
response = client.Delete<Company>(company.CompanyID, d => d.Index(indexName));
//删除文档
response = client.Delete<Company>(company.CompanyID);

7.删除索引

    //根据名称删除索引
response=client.DeleteIndex(indexName);

8.批量创建文档

这里是指定了相应的索引,如果没有显示指定索引,都是用的默认索引,

//批量创建文档
BulkDescriptor descriptor = new BulkDescriptor();
descriptor.Index<Company>(op => op.Document(new Company { CompanyID = 1, Name = "IBM" }).Index("a"));
descriptor.Index<Company>(op => op.Document(new Company { CompanyID = 2, Name = "IBM" }).Index("b"));
descriptor.Index<Company>(op => op.Document(new Company { CompanyID = 3, Name = "IBM" }).Index("c")); response = client.Bulk(descriptor);

最新文章

  1. MVC中局部视图的使用
  2. SQL Server 2012 配置数据库邮件
  3. TEST指令
  4. c语言下的通用数据库接口(之sqlite消化,模拟c#,java的反射)
  5. [Entity Framework]获取部分字段的查询
  6. python使用deque实现fifo(先进先出)
  7. [Jobdu] 题目1385:重建二叉树
  8. HTML5 CSS3专题 纯CSS打造相冊效果
  9. 状态压缩dp(hdu2167,poj2411)
  10. js匀速运动停止条件
  11. COMPUTE子句和Group By
  12. Python——pyqt5——各框架编程
  13. 吴恩达课后作业学习1-week3-homework-one-hidden-layer
  14. [java] 在linux+chrome/firefox上使用java applet
  15. nio例子
  16. sql语句优化(二)
  17. Python3学习之路~6.8 多态
  18. mysql每天凌晨0点准时启动taskeng.exe如何关闭
  19. windows系统 PHP安装Redis扩展
  20. Guava中针对集合的 filter和过滤功能

热门文章

  1. javascript string对象方法总结
  2. 2017 3-4/5 两天的学习的REVIEW
  3. debian/ubuntu部署java应用小结
  4. PHP文本的读写
  5. MacOS无法登录App Store修复
  6. Java基础——运算符
  7. 1632: [Usaco2007 Feb]Lilypad Pond
  8. 1638: [Usaco2007 Mar]Cow Traffic 奶牛交通
  9. 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
  10. synchronized的4种用法