Elasticsearch入门CRUD(新增、查询、修改、删除)
来源:互联网 发布:直播软件收入排行榜 编辑:程序博客网 时间:2024/06/03 22:08
IT交流互助QQ群:79190545 (Sql Server / Java / Asp.Net / C# / JS / Jquery / Oracle / My Sql / )
-- 欢迎大家进来 聊天,交流 !!。(定期清理 不说话、潜水太深的同学)
1. 项目中引用 Elasticsearch.Net
Elasticsearch 其他版本可在: http://www.nuget.org/ 找到对应的项目以源码 !
本文以 2.4.1版本为例
首先我们打开项目,点击-工具--》NuGet 包管理器--》程序包管理器控制台
在控制台输入安装命令: Install-Package NEST -Version 2.4.1 (然后回车确认安装)
如图:
安装成功:
2. 项目中CRUD案例
首先根据数据对象 创建Model 类。
并且在字段属性上面加上 : [JsonProperty("字段名")]
<span style="font-size:10px;">using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.Web;namespace WebApplication1.Models{ // [DataContract] public class Orders { // [DataMember] [JsonProperty("OrderID")] //Newtonsoft.Json 命名空间 public string OrderID { get; set; } [JsonProperty("IsPackageOrder")] public int IsPackageOrder { get; set; } [JsonProperty("PackageOrderID")] public string PackageOrderID { get; set; } [JsonProperty("CRSResvID")] public string CRSResvID { get; set; } [JsonProperty("GuaranteeModeCode")] public string GuaranteeModeCode { get; set; } [JsonProperty("HotelID")] public string HotelID { get; set; } [JsonProperty("GuestSrcCode")] public string GuestSrcCode { get; set; } [JsonProperty("HotelDiscountCode")] public string HotelDiscountCode { get; set; } [JsonProperty("MemberCardTypeCode")] public string MemberCardTypeCode { get; set; } [JsonProperty("ResvRouteCode")] public string ResvRouteCode { get; set; } [JsonProperty("GuestID")] public string GuestID { get; set; } [JsonProperty("AgreementID")] public string AgreementID { get; set; } [JsonProperty("MemberCardNo")] public string MemberCardNo { get; set; } [JsonProperty("TeamID")] public string TeamID { get; set; } [JsonProperty("Amount")] public string Amount { get; set; } [JsonProperty("ContactName")] public string ContactName { get; set; } [JsonProperty("ContactMobile")] public string ContactMobile { get; set; } [JsonProperty("ContactPhone")] public string ContactPhone { get; set; } [JsonProperty("ContactFax")] public string ContactFax { get; set; } [JsonProperty("ContactEmail")] public string ContactEmail { get; set; } [JsonProperty("Remark1")] public string Remark1 { get; set; } [JsonProperty("Remark2")] public string Remark2 { get; set; } [JsonProperty("ResvTime")] public string ResvTime { get; set; } [JsonProperty("ResvCityCode")] public string ResvCityCode { get; set; } [JsonProperty("IsPrePaid")] public int IsPrePaid { get; set; } [JsonProperty("OrderStatusCode")] public string OrderStatusCode { get; set; } [JsonProperty("CancelReasonCode")] public string CancelReasonCode { get; set; } [JsonProperty("ConfirmTypeCode")] public string ConfirmTypeCode { get; set; } [JsonProperty("InputStartTime")] public string InputStartTime { get; set; } [JsonProperty("InputSpanMS")] public int InputSpanMS { get; set; } [JsonProperty("InputWorkNo")] public string InputWorkNo { get; set; } [JsonProperty("CreatedOn")] public string CreatedOn { get; set; } [JsonProperty("ModifiedBy")] public string ModifiedBy { get; set; } [JsonProperty("ModifiedOn")] public string ModifiedOn { get; set; } [JsonProperty("TimeStamp")] public string TimeStamp { get; set; } [JsonProperty("CRSOldResvRouteCode")] public string CRSOldResvRouteCode { get; set; } [JsonProperty("ActualDiscount")] public float ActualDiscount { get; set; } [JsonProperty("AgentName")] public string AgentName { get; set; } [JsonProperty("DiscountTypeTag")] public int DiscountTypeTag { get; set; } [JsonProperty("FixedPrice")] public string FixedPrice { get; set; } [JsonProperty("AgentCode")] public string AgentCode { get; set; } [JsonProperty("IsApartment")] public int IsApartment { get; set; } [JsonProperty("TeamProtocalID")] public string TeamProtocalID { get; set; } [JsonProperty("InvoiceTitle")] public string InvoiceTitle { get; set; } [JsonProperty("PointIncrementalTimes")] public string PointIncrementalTimes { get; set; } [JsonProperty("ResvType")] public string ResvType { get; set; } }}</span>
/// <summary> /// 创建客户端实例 /// </summary> /// <returns></returns> private static ElasticClient GetSearchClient() { //服务器IP地址: 端口号 。(Elasticsearch默认端口:9200) var node = new Uri("http://192.168.210.31:9200"); var settings = new ConnectionSettings(node); var client = new ElasticClient(settings); //验证索引是否存在 if (!client.IndexExists("order").Exists) { client.CreateIndex("order"); //索引 } //返回Elasticsearch 操作实例 return client; }
2.1 新增
<span style="font-size:10px;"> //操作ElasticSearch实例 ElasticClient client = GetSearchClient(); //新增对象实例化 Orders orderModel = new Orders(); //赋值 orderModel.OrderID = "79190545"; orderModel.ContactName = "IT交流互助 QQ群: 79190545"; //初始化插入对象 IIndexRequest<Orders> o = new IndexRequest<Orders>( "order", //_index :索引 "orderhis", //_type :类型 orderModel.OrderID //_id :标示ID ) { Document = orderModel, //新增数据对象 }; //调用新增 IIndexResponse inxResponse = client.Index(o); if (inxResponse.IsValid) { //操作成功 } else { //操作失败 }</span>
2.2 查询
<span style="font-size:32px;font-weight: bold;"> </span><span style="font-size:10px;">string key = "IT交流互助 群: 79190545"; // 需要查询的内容 int ix = 1; //当前页数 //实例化 ElasticSearch 操作对象 ElasticClient client = GetSearchClient(); //执行查询 var response = client.Search<Orders>(s => s .From((ix - 1) * 5) //起始页 .Size(5) //每页条数 .Query(q => //查询筛选条件 //这样就查询不出来 // q.Wildcard(t => t.ContactName, string.Format("*{0}*", key.ToLower())) || //精确查找 // q.Term(t => t.OrderID, key.ToLower()) //|| q.Term(t => t.ContactMobile, key.ToLower()) //|| q.Term(t => t.ContactPhone, key.ToLower()) //模糊检索 q.Wildcard(t => t.OrderID, string.Format("*{0}*", key.ToLower())) || q.Wildcard(t => t.ContactMobile, string.Format("*{0}*", key.ToLower())) || q.Wildcard(t => t.ContactPhone, string.Format("*{0}*", key.ToLower())) //这样查询,默认分词检索(相当于 like '%第一个词%' or like '%第二个词%' or like '%第三个词%') //而实际情况只需要 查询 like '%韩世平%' // q.Match(mq => mq.Field(f => f.OrderID).Analyzer(key.ToLower())) //|| q.Match(mq => mq.Field(f => f.ContactName == key)) //|| q.Match(mq => mq.Field(f => f.ContactMobile).Query(key)) //|| q.Match(mq => mq.Field(f => f.ContactPhone).Query(key)) ) ); //查询出来的结果对象 List<Orders> ResultList = response.Documents.ToList();</span><span style="font-size:32px;font-weight: bold;"></span>
<span style="font-weight: bold; font-size: 32px;"> </span><span style="font-size:10px;">//实例化 ElascticSearch 操作对象 ElasticClient client = GetSearchClient(); //实例化修改对象 Orders orderModel = new Orders() { ContactName = "IT交流互助 Q群: 79190545", //需要修改的数据,不需要修改的可以不写 }; //实例化 请求修改对象 UpdateRequest<Orders, Orders> updRequest = new UpdateRequest<Orders, Orders>( "order", //_index :索引 "orderhis", //_type :类型 "R1401001950922" //_id :标示ID ) { Doc = orderModel, //需要求改的对象 }; //调用修改 IUpdateResponse<Orders> updResponse = client.Update<Orders>(updRequest); if (updResponse.IsValid) { //操作成功 } else { //操作失败 }</span>
2.4 删除
<span style="font-weight: bold; font-size: 32px;"> </span><span style="font-size:10px;">//实例化 ElascticSearch 操作对象 ElasticClient client = GetSearchClient(); //实例化删除请求对象 DocumentPath<Orders> docPath = new DocumentPath<Orders>( "R1401001950922" //_id :标示ID ); IDeleteResponse delResponse = client.Delete<Orders>( docPath, //需要删除的对象 p => p .Index("order") //_index :索引 .Type("orderhis") //_type :类型 ); if (delResponse.IsValid) { //操作成功 } else { //操作失败 }</span><span style="font-weight: bold; font-size: 32px;"></span>
IT交流互助QQ群:79190545 (Sql Server / Java / Asp.Net / C# / JS / Jquery / Oracle / My Sql / )
-- 欢迎大家进来 聊天,交流 !!。(定期清理 不说话、潜水太深的同学)
2 0
- Elasticsearch入门CRUD(新增、查询、修改、删除)
- EntityFramework 入门 CRUD(新增、查询、修改、删除)
- XML新增、修改、删除、查询操作
- SQL 查询、新增、修改、删除等等
- MyBatis批量新增、修改、删除、查询
- MyBatis实现CRUD(增加,删除,修改,查询,分页)
- php操作MongoDB基础教程(连接、新增、修改、删除、查询)
- php操作MongoDB基础教程(连接、新增、修改、删除、查询)
- Elasticsearch 学习笔记 索引创建、插入、查询、修改、删除
- LINQ -- 新增 修改 删除
- 触发器新增、修改、删除
- ElasticSearch入门-增删改查(CRUD)
- ElasticSearch入门-增删改查(CRUD)
- 一起来学Elasticsearch入门案例讲解-CRUD
- elasticsearch 查询删除文档
- ElasticSearch CRUD
- elasticsearch CRUD
- XML 修改 新增 删除 插入
- BZOJ 2243 [SDOI2011]染色==树链剖分
- [汇编]8086指令系统---逻辑指令
- ANDROID内存优化(大汇总——全)
- 94. Binary Tree Inorder Traversal
- POJ2932:Coneolog
- Elasticsearch入门CRUD(新增、查询、修改、删除)
- [汇编]8086指令系统---算术指令(二)
- codeforces 689D (二分 RMQ)
- aspect term extraction——最近两篇结合依存树和CRF的文章
- poj 2348 Euclid's Game (博弈局面分析)
- 第二天-HTML5之CSS3特效
- Ajax_数据格式_HTML(01)
- sublime text3 中无法输入中文的问题
- memcache 介绍及原理