esinvoker

This commit is contained in:
橙子
2021-11-09 16:59:50 +08:00
parent 24cf70da2c
commit 5c106a8ab4

View File

@@ -0,0 +1,53 @@
using Microsoft.Extensions.Options;
using Nest;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Common.IOCOptions;
namespace Yi.Framework.Core
{
public class ElasticSearchInvoker
{
private readonly ElasticSearchOptions _elasticSearchOptions;
public ElasticSearchInvoker(IOptionsMonitor<ElasticSearchOptions> optionsMonitor)
{
_elasticSearchOptions = optionsMonitor.CurrentValue;
var settings = new ConnectionSettings(new Uri(_elasticSearchOptions.Url)).DefaultIndex(this._elasticSearchOptions.IndexName);
Client = new ElasticClient(settings);
}
private ElasticClient Client;
public ElasticClient GetElasticClient()
{
return Client;
}
public void Send<T>(List<T> model) where T : class
{
Client.IndexMany(model);
}
public void InsertOrUpdata<T>(T model) where T : class
{
Client.IndexDocument(model);
}
public bool Delete<T>(string id) where T : class
{
var response = Client.Delete<T>(id);
return response.IsValid;
}
public bool DropIndex(string indexName)
{
return Client.Indices.Delete(Indices.Parse(indexName)).IsValid;
}
public void CreateIndex(string indexName)
{
var settings = new ConnectionSettings(new Uri(_elasticSearchOptions.Url)).DefaultIndex(indexName);
this.Client = new ElasticClient(settings);
}
}
}