日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在.Net环境下使用elasticsearch实现大数据量的搜索

發布時間:2023/12/4 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在.Net环境下使用elasticsearch实现大数据量的搜索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Elasticsearch是一個基于Apache Lucene(TM)的開源搜索引擎。無論在開源還是專有領域,Lucene可以被認為是迄今為止最先進、性能最好的、功能最全的搜索引擎庫。

Elasticsearch使用標準的RESTful API和JSON。我們還用多種語言構建和維護客戶機,如Java、Python、。NET、SQL和PHP。此外,我們的社區貢獻了更多。它們易于使用,使用起來很自然,而且,就像Elasticsearch一樣,不會限制您對它們的使用。

下面看下基于Net的使用

https://github.com/elastic/elasticsearch-net

選擇 Elasticsearch.Net 作為客戶端

連接

var?node?=?new?Uri("http://myserver:9200"); var?config?=?new?ConnectionConfiguration(node); var?client?=?new?ElasticLowLevelClient(config); var?myJson?=?@"{?""hello""?:?""world""?}"; client.Index<StringResponse>("myindex",?"1",?myJson); var?myJson?=?new?{?hello?=?"world"?}; client.Index<BytesResponse>("myindex",?"1",?PostData.Serializable(myJson));

創建

public?class?ElasticSearchClient{public?ElasticLowLevelClient?Client?{?get;?}private?readonly?IConfiguration?_configuration;public?ElasticSearchClient(IConfiguration?configuration){_configuration?=?configuration;Client?=?InitClient();}#region?Methodspublic?async?Task<string>?Index(string?index,?string?id,?PostData?body){var?response?=?await?Client.IndexAsync<StringResponse>(index,?id,?body);ResponseValidate(response);return?response.Body;}

查詢

public?async?Task<List<string>>?SearchWithHighLight(string?index,?string?query){var?response?=?await?Client.SearchAsync<StringResponse>(index,PostData.Serializable(new{from?=?0,size?=?100,query?=?new{match?=?new{content?=?query}},highlight?=?new{pre_tags?=?new[]?{?"<tag1>",?"<tag2>"?},post_tags?=?new[]?{?"/<tag1>",?"/<tag2>"?},fields?=?new{content?=?new?{?}}}}));ResponseValidate(response);var?responseJson?=?(JObject)JsonConvert.DeserializeObject(response.Body);var?hits?=?responseJson["hits"]["hits"]?as?JArray;var?result?=?new?List<string>();foreach?(var?hit?in?hits){var?id?=?hit["_id"].ToObject<string>();result.Add(id);}return?result;}

刪除

public?async?Task<bool>?Delete(string?index,?string?id){var?response?=?await?Client.DeleteAsync<StringResponse>(index,?id);ResponseValidate(response);return?response.Success;}#endregion#region?privatesprivate?ElasticLowLevelClient?InitClient(){var?node?=?new?Uri(_configuration.GetConnectionString("ElasticSearch"));var?settings?=?new?ConnectionConfiguration(node);var?client?=?new?ElasticLowLevelClient(settings);return?client;}private?void?ResponseValidate(StringResponse?response){if?(response.Success?==?false){throw?new?ResultException(response.Body);}}#endregion}

使用

private?readonly?ElasticSearchClient?_elasticSearchClient; await?_elasticSearchClient.Index(Article.EsIndex,?article.ArticleUID,PostData.Serializable(article));

總結

以上是生活随笔為你收集整理的在.Net环境下使用elasticsearch实现大数据量的搜索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。