C#配合大數據開發,nest.dll的使用

一,添加Nest.dll引用node

結果以下多了以下DLL:測試

Elasticsearch.Net.dll,Nest.dll大數據

二,上代碼:spa

using Common.EsModel;
using Elasticsearch.Net;
using Nest;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Common.Es
{
    /// <summary>
    /// Nest(ES)開發:
    /// 1,須要大數據提供節點地址,和帳號密碼
    /// 2,須要大數據提供表名和字段名
    /// 3,須要大數據提供一個能夠查詢數據的地址(這個地址是大數據搭建的)(須要大數據那邊提供帳號密碼登錄),能夠測試查詢返回值,和測試查詢語句是否正確
    /// </summary>
    public class EasticSearchUtil
    {
        /// <summary>
        /// ES查詢上限
        /// </summary>
        public const int limitcount = 10000;
        public static string ElasticSearchAccount = "demo";
        public static string ElasticSearchPassword = "123456";
        /// <summary>
        /// 配置連接:
        /// </summary>
        /// <param name="data">查詢的表名</param>
        /// <returns></returns>
        private ElasticClient GetClient(string data)
        {
            ////一個節點
            var nodes = new Uri[]
            {
                ///節點地址
                new Uri("http://192.168.0.1:1001"),
                new Uri("http://192.168.0.2:1001"),
                new Uri("http://192.168.0.3:1001"),
            };

            var pool = new StaticConnectionPool(nodes);
            var settings = new ConnectionSettings(pool).DefaultIndex(data).DefaultFieldNameInferrer((name) => name);
            settings.BasicAuthentication(ElasticSearchAccount, ElasticSearchPassword);
            return new ElasticClient(settings);
        }
        /// <summary>
        /// 查詢 
        /// Term這個是查詢映射實體不存在的字段(PS)
        /// </summary>
        /// <param name="province">省份名稱</param>
        /// <param name="id">id</param>
        public IEnumerable<demo> search(string province, int id)
        {
            var searchResults = GetClient("demo").Search<demo>((s => s.From(0).Size(limitcount).Query(q => q.Term("Id", id) && q.Term("province", province)).Sort(st => st.Descending(ds => ds.Num))));
            return searchResults.Documents;
        }
        /// <summary>
        /// 新增
        /// </summary>
        /// <returns></returns>
        public bool create()
        {
            var model = new demo
            {
                Id = 4,
                Num = 1,
                city = "123",
            };

            var searchResults = GetClient("demo").Create<demo>(model, null);
            return searchResults.IsValid;
        }
        /// <summary>
        /// 刪除
        /// </summary>
        /// <returns></returns>
        public bool del()
        {
            var client = GetClient("demo");
            var model = new demo { Id = 2, Num = 111 };
            //刪除文檔
            var response2 = client.Delete<demo>(model.Id);
            return response2.IsValid;
        }
        /// <summary>
        /// 更新
        /// </summary>
        /// <returns></returns>
        public bool update()
        {
            var  model = new demo { Id = 2, Num = 111 };
            //根據demoID來修改文檔,若是存儲裏存在一個CompanyID等於2的文檔,他就會用新的替換舊的,不然就建立一個。
            var response = GetClient("demo").Index(model, i => i.Id(model.Id));
            return response.IsValid;
        }
    }
}
相關文章
相關標籤/搜索