来自 威尼斯国际官方网站 2019-12-23 06:03 的文章
当前位置: 威尼斯国际官方网站 > 威尼斯国际官方网站 > 正文

添加和更新文档

NEST提供二种更新文书档案的形式,逐一更新和批量改善,函数PopulateIndex用于逐一更新索引,函数BulkPopulateIndex用于批量翻新索引;

.net ElasticSearch

  • ElasticSearch入门 第一篇:Windows下安装ElasticSearch
  • ElasticSearch入门 第二篇:集群配置
  • ElasticSearch入门 第三篇:索引
  • ElasticSearch入门 第四篇:使用C#拉长和改善文书档案
  • ElasticSearch入门 第五篇:使用C#查询文书档案
  • ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套
  • ElasticSearch入门 第七篇:分析器
  • ElasticSearch入门 第八篇:存储
  • ElasticSearch入门 第九篇:完结正则表达式查询的笔触
var node = new Uri("http://myserver:9200");
var settings = new ConnectionSettings(node).DefaultIndex("default");
var client = new ElasticClient(settings);

3,更新文书档案

选择客商端的Bulk方法批量翻新文书档案,须要依附实体列表List布局叁个BulkRequest参数:

注意,模型的字段名和开创的索引映射中的字段保持生龙活虎致,推荐都应用小写字母。Nest驱动程序提供了模型属性,读者能够自行尝试。

那是ElasticSearch 2.4 版本多样的第四篇:

注意,在立异索引时,高亮展现的代码钦点了目录的元字段_id为meetupevent实体的主键eventid;

  • Elasticsearch.Net.dll (版本 5.0.0.0)
  • Nest.dll (版本 5.0.0.0)
  • Newtonsoft.Json.dll (版本 9.0.0.0)
Client.Index(student);

5,计算NEST驱动程序的选择

二,NEST驱动程序的粗略使用**

client.Bulk(bulkRequest);

大器晚成,ElasticSearch的.net顾客端驱动程序

using Nest;    
public static class Setting
{
    public static string strConnectionString=@"http://localhost:9200";
    public static Uri Node
    {
        get
        {
            return new Uri(strConnectionString);
        }
    }
    public static ConnectionSettings ConnectionSettings
    {
        get
        {
            return new ConnectionSettings(Node).DefaultIndex("default");
        }
    }
}

 

行使顾客端的IndexMany函数更新/增多四个文书档案:

ElasticSearch官网提供了八个.net客户端驱动程序,个中Elasticsearch.Net是三个格外底层且灵活的用户端驱动程序,客户需求手动创造央浼(Request)和响应(Response);而NEST是一个高层的客户端,其内部使用的依然是Elasticsearch.Net驱动程序,NEST具备查询DSL(领域特定语言),能够映射全数央浼和响应对象,使用起来比相当低价。分歧版本的NEST驱动程序,其提供的接口变化比超大,在熟稔Nest之后,能够行使Elasticsearch.Net驱动程序来编排本人的代码,免受更新之苦。

参照文书档案:

对此三个数据库开拓,相当久未有写过C#代码,dot net新手三个,本文轻松分享了运用ElasticSearch的.net客商端驱动程序向索引中添Gavin书档案的代码片段,详细新闻,请参考官方手册:Elasticsearch.Net and NEST: the .NET clients [5.x] » Introduction

var list = new List<Student>();
client.IndexMany<Student>(list);

NEST使用指南

2,创制数据模型

假定更新的数据量十一分小幅,提议,首先对数据源分页,分batch更新ElasticSearch的目录。ElasticSearch在批量目录文书档案时,固然一堆文书档案数量过大,会变成数据遗失,建议每趟索引1000个文书档案。

首先,下载ElastiSearch的.net客商端驱动程序,展开VS的工具(Tools)菜单,通过NuGet包微机调整台,输入指令安装NEST:

PM> Install-Package NEST

1,连接到ElasticSearch引擎服务器

using Nest;
public class ESProvider
{
    public static ElasticClient client = new ElasticClient(Setting.ConnectionSettings);
    public static string strIndexName = @"meetup".ToLower();
    public static string strDocType = "events".ToLower();

    public bool PopulateIndex(MeetupEvents meetupevent)
    {
        var index = client.Index(meetupevent,i=>i.Index(strIndexName).Type(strDocType).Id(meetupevent.eventid));
        return index.Created;
    }

    public bool BulkPopulateIndex(List<MeetupEvents> posts)
    {
        var bulkRequest = new BulkRequest(strIndexName,strDocType) { Operations = new List<IBulkOperation>() };   
        var idxops = posts.Select(o => new BulkIndexOperation<MeetupEvents>(o) { Id=o.eventid}).Cast<IBulkOperation>().ToList();
        bulkRequest.Operations = idxops;
        var response = client.Bulk(bulkRequest);
        return response.IsValid;
    }
}

接纳顾客端的Index方法立异/增多单个文书档案:

4,执行批量更新操作

ESProvider es = new ESProvider();
List<MeetupEvents> pbs = new List<MeetupEvents>();

foreach (DataRow dr in MeetupEventsTable.Rows)
{
    MeetupEvents pb = new MeetupEvents();
    pb.eventid = long.Parse(dr["EventID"].ToString());
    pb.orignalid = dr["OriginalID"].ToString();
    pb.eventname = dr["EventName"].ToString();
    pb.description = dr["Description"].ToString();

    pbs.Add(pb);
}          
es.BulkPopulateIndex(pbs);

在ElasticSearch引擎中开展全文检索是黄金年代件很酷炫的事,而创立索引是最入眼的事,应当要专心设计,提议利用head插件创制索引的投射(Mapping),而对索引文书档案数据的日常更新,能够使用C#顾客端程序,依据安顿自动进行数量的同步和换代。

行使以下三段代码连接NEST顾客端:

public class MeetupEvents
{
    public long eventid { get; set; }
    public string orignalid { get; set; }
    public string eventname { get; set; }
    public string description { get; set; }
}

 

安装之后,系统引用多个DLL文件,楼主安装的驱动程序版本分别是:

elasticsearch.net search入门使用指南中文版

 

只顾,暗中认可索引的名目必需小写,提出将索引名,文书档案类型名称,和字段名称都小写。

图片 1

本文由威尼斯国际官方网站发布于威尼斯国际官方网站,转载请注明出处:添加和更新文档

关键词: