首页 > Web开发 > 详细

.NetCore中Elasticsearch组件NEST的使用

时间:2021-08-07 23:13:04      阅读:33      评论:0      收藏:0      [点我收藏+]

.NetCore中Elasticsearch组件NEST的使用

1. 安装Docker


# 安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 安装完Docker后,打开阿里云,使用阿里提供的镜像加速服务,下面有执行代码,直接拷贝到Linux执行即可。

2. 安装 Elasticsearch


# 创建网络(应该是Kibana使用的)
docker network create elastic
# 拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.14.0

docker run     --name es-demo     --net elastic     -d     -p 19200:9200     -p 19300:9300     -e "discovery.type=single-node"     docker.elastic.co/elasticsearch/elasticsearch:7.14.0

3. 安装NEST组件

使用方式直接看NEST项目的文档

3. 连接配置

  • 配置文件

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
      "ElastictsearchOptions": {
        "Urls": [
          "http://localhost:8001",
          "http://localhost:8002",
          "http://localhost:8003",
          "http://localhost:8004"
        ]
      }
    }
    
    
  • 注入配置

        /// <summary>
        /// Elasticsearch 配置类
        /// </summary>
        public class ElastictsearchOptions
        {
            public List<Uri> Urls { get; set; }
        }
    
           public void ConfigureServices(IServiceCollection services)
            {
                services.Configure<ElastictsearchOptions>(Configuration.GetSection(nameof(ElastictsearchOptions)));
                services.AddSingleton<IESService, ESService>(); 
            }
    
  • Elasticsearch服务实现类

    /// <summary>
    /// Elasticsearch 服务
    /// </summary>
    public class ESService : IESService
    {
        private ElasticClient ESClient { get; }
    
        #region 依赖注入
            public ESService(IOptionsMonitor<ElastictsearchOptions> esOptionsMonitor)
        {
            ElastictsearchOptions option = esOptionsMonitor.CurrentValue;
            var urls = new StaticConnectionPool(option.Urls);
            var settings = new ConnectionSettings(urls);
            ESClient = new ElasticClient(settings);
        }
        #endregion
    }
    
  • 上层应用使用

    // 直接注入IESService使用
    

.NetCore中Elasticsearch组件NEST的使用

原文:https://www.cnblogs.com/wosperry/p/15113205.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!