Elasticsearch-C#操作
初始化实例
nuget安装

1、单点连接
var node = new Uri("http://myserver:9200");
var settings = new ConnectionSettings(node);
var client = new ElasticClient(settings);
2、连接池连接
var nodes = new Uri[]
{
new Uri("http://myserver1:9200"),
new Uri("http://myserver2:9200"),
new Uri("http://myserver3:9200")
};
var pool = new StaticConnectionPool(nodes);
var settings = new ConnectionSettings(pool);
var client = new ElasticClient(settings);
3、指定索引
可以通过ConnectionSettings使用.DefaultIndex(),来指定默认索引。当一个请求里没有指定具体索引时,NEST将请求默认索引。
var settings = new ConnectionSettings()
.DefaultIndex("defaultindex");
新增
var nodes = new Uri[]
{
new Uri("http://localhost:9200")
};
var pool = new StaticConnectionPool(nodes);
var settings = new ConnectionSettings(pool).DefaultIndex("crm.base.log").BasicAuthentication("elastic", "caKBawShu0Pm7BsjSFbd");
var client = new ElasticClient(settings);
var log = new CreateRequest<CRMLog>(Guid.NewGuid());
log.Document = new CRMLog();
log.Document.LogLevel = ;
log.Document.HttpMethod = "Get";
client.Create<CRMLog>(log);
删除
根据ID删除
client.Delete<CRMLog>(new DocumentPath<CRMLog>("aca1f759-43ec-4c2c-b9ce-fe0f6c644a48"));
client.Delete(new DeleteRequest("crm.base.log", "4bd0ffb9-f5fc-4748-94f6-b41c706cc4ca"));
删除多条
var bulkDel = new BulkRequest() { Operations = new List<IBulkOperation>() };
bulkDel.Operations.Add(new BulkDeleteOperation<CRMLog>("4bd0ffb9-f5fc-4748-94f6-b41c706cc4ca"));
bulkDel.Operations.Add(new BulkDeleteOperation<CRMLog>("aca1f759-43ec-4c2c-b9ce-fe0f6c644a48"));
var resultDel = client.Bulk(bulkDel);
从新指定索引
client.Delete<CRMLog>("", s => s.Index(""));
修改
IUpdateRequest<CRMLog, CRMLog> request = new UpdateRequest<CRMLog, CRMLog>("6cfb5050-d175-4fb1-8f8d-c6d88cb0e2a4")
{
Doc = new CRMLog()
{
LogLevel = ,
HttpMethod = "test4update........"
}
};
var resp = client.Update<CRMLog, CRMLog>(request);
更新多条
var bulkUpdate = new BulkRequest() { Operations = new List<IBulkOperation>() };
bulkUpdate.Operations.Add(new BulkUpdateOperation<CRMLog, CRMLog>("6cfb5050-d175-4fb1-8f8d-c6d88cb0e2a4") { Doc = new CRMLog() { HttpMethod = "xiugai" } });
bulkUpdate.Operations.Add(new BulkUpdateOperation<CRMLog, CRMLog>("aca1f759-43ec-4c2c-b9ce-fe0f6c644a48") { Doc = new CRMLog() { HttpMethod = "xiugai1" } });
var result = client.Bulk(bulkUpdate);
查询
var modUser = client.Get<CRMLog>("6cfb5050-d175-4fb1-8f8d-c6d88cb0e2a4");
var tweet = JsonConvert.SerializeObject(modUser.Source);
多查询
var modList = client.Search<CRMLog>(s => s
.From()
.Size()
.Query(q =>
q.Term(t => t.HttpMethod, "www.b.com")
|| q.Match(mq => mq.Field(f => f.HttpMethod).Query("Get"))
)
);
重新指定索引
client.Search<CRMLog>(s => s.Index("crm.base.log"));
推荐链接
https://blog.csdn.net/manimanihome/article/details/55682494
https://www.cnblogs.com/zhy-1992/p/7244440.html
https://www.jianshu.com/p/f178e59ffaf2
Elasticsearch-C#操作的更多相关文章
- ElasticSearch Index操作源码分析
ElasticSearch Index操作源码分析 本文记录ElasticSearch创建索引执行源码流程.从执行流程角度看一下创建索引会涉及到哪些服务(比如AllocationService.Mas ...
- 使用Spring Data ElasticSearch+Jsoup操作集群数据存储
使用Spring Data ElasticSearch+Jsoup操作集群数据存储 1.使用Jsoup爬取京东商城的商品数据 1)获取商品名称.价格以及商品地址,并封装为一个Product对象,代码截 ...
- elasticsearch使用操作部分
本片文章记录了elasticsearch概念.特点.集群.插件.API使用方法. 1.elasticsearch的概念及特点.概念:elasticsearch是一个基于lucene的搜索服务器.luc ...
- Elasticsearch批处理操作——bulk API
Elasticsearch提供的批量处理功能,是通过使用_bulk API实现的.这个功能之所以重要,在于它提供了非常高效的机制来尽可能快的完成多个操作,与此同时使用尽可能少的网络往返. 1.批量索引 ...
- elasticsearch简单操作
现在,启动一个节点和kibana,接下来的一切操作都在kibana中Dev Tools下的Console里完成 创建一篇文档 将小黑的小姨妈的个人信息录入elasticsearch.我们只要输入 PU ...
- JestClient 使用教程,教你完成大部分ElasticSearch的操作。
本篇文章代码实现不多,主要是教你如何用JestClient去实现ElasticSearch上的操作. 授人以鱼不如授人以渔. 一.说明 1.elasticsearch版本:6.2.4 . jdk版本: ...
- Elasticsearch 安装操作手册
第一部分 ES安装环境的准备和初始化 现在交心的版本Elasticsearch 5.6.3 官方建议安装Oracle的JDK8,安装前先检查机器是否已安装JDK. Step 1 检查环境机器是否已安装 ...
- elasticsearch简单操作(二)
让我们建立一个员工目录,假设我们刚好在Megacorp工作,这时人力资源部门出于某种目的需要让我们创建一个员工目录,这个目录用于促进人文关怀和用于实时协同工作,所以它有以下不同的需求:1.数据能够包含 ...
- elasticsearch聚合操作——本质就是针对搜索后的结果使用桶bucket(允许嵌套)进行group by,统计下分组结果,包括min/max/avg
分析 Elasticsearch有一个功能叫做聚合(aggregations),它允许你在数据上生成复杂的分析统计.它很像SQL中的GROUP BY但是功能更强大. 举个例子,让我们找到所有职员中最大 ...
- python使用elasticsearch模块操作elasticsearch
1.创建索引 命令如下 from elasticsearch import Elasticsearch es = Elasticsearch([{"host":"10.8 ...
随机推荐
- Python socket 通信功能简介
常用的地址家族AF_UNIX:基于文件,实现同一主机不同进程之间的通信AF_INET:基于网络,适用于IPv4AF_INET6:基于网络,使用于IPv6 常见的连接类型SOCK_STREAM:即TCP ...
- Shell编程—企业生产案例
Linux系统Shell编程—企业生产案例(一) 企业数据库可以说是重点保护对象啊,没有之一,数据在当今企业里就是生命线,因此今天就来说一说,如何通过shell脚本来检查或监控MYSQL数据库服务是否 ...
- 关于Vertical Align的理解
1:vertical-align 翻译就是垂直-对齐... 2:关于line-height的点 2.1:如果一个标签没有定义height属性,那么其最终表现的高度一定是由line-height起作用. ...
- 深度学习面试题16:小卷积核级联卷积VS大卷积核卷积
目录 感受野 多个小卷积核连续卷积和单个大卷积核卷积的作用相同 小卷积核的优势 参考资料 感受野 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(fe ...
- 使用清华源 tensorflow 安装
1. 超级权限打开cmd.exe 2. pip install --upgrade setuptools 3. pip install -U --ignore-installed wrapt enu ...
- JVM 数组创建的本质
1.创建数组 创建一个MyParent4[] 数组 public class MyTest4 { public static void main(String[] args) { MyParent4[ ...
- java的List中使用filter过滤出符合特定条件的元素List
在实际开发中,经常需要把一个列表中的元素,按照特定条件过滤出来,放到一个新的列表中.本文给出了几个例子,来描述解决这个问题的方法. 我们假设有一个书的List,需要找出其中id分别是3.6.8.9的书 ...
- 1.0 Android基础入门教程
1.0 Android基础入门教程 分类 Android 基础入门教程 本教程于2015年7月开始撰写,耗时半年,总共148节,涵盖了Android基础入门的大部分知识,由于当时能力局限,虽已竭尽全力 ...
- ISO/IEC 9899:2011 条款6.8.6——跳转语句
6.8.6 跳转语句 语法 1.jump-statement: goto identifier ; continue ; break ; return expressio ...
- Git 代码撤销、回滚到任意版本(当误提代码到本地或master分支时)
转自https://www.cnblogs.com/lwh-note/p/9639835.html 两种情况(场景) 情况一 代码还只在本地,未push到运程仓库,想把代码还原到上一次com ...