- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C#如何使用 ES
Elasticsearch简介
Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定、可靠、快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的。
Elasticsearch是什么
Elasticsearch是一个基于 Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域, Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
但是, Lucene 只是一个库。想要发挥其强大的作用,你需使用 C#将其集成到你的应用中。 Lucene 非常复杂,你需要深入的了解检索相关知识来理解它是如何工作的。
Elasticsearch也是使用 Java编写并使用 Lucene 来建立索引并实现搜索功能,但是它的目的是通过简单连贯的 RESTful API让全文搜索变得简单并隐藏 Lucene 的复杂性。
不过, Elasticsearch不仅仅是 Lucene 和全文搜索引擎,它还提供:
分布式的实时文件存储,每个字段都被索引并可被搜索
实时分析的分布式搜索引擎
可以扩展到上百台服务器,处理 PB 级结构化或非结构化数据
而且,所有的这些功能被集成到一台服务器,你的应用可以通过简单的 RESTful API、各种语言的客户端甚至命令行与之交互。上手 Elasticsearch非常简单,它提供了许多合理
的缺省值,并对初学者隐藏了复杂的搜索引擎理论。它开箱即用(安装即可使用) ,只需很少的学习既可在生产环境中使用。 Elasticsearch在 Apache 2 license 下许可使用,可
以免费下载、使用和修改。
随着知识的积累,你可以根据不同的问题领域定制 Elasticsearch的高级特性,这一切都是可配置的,并且配置非常灵活。
以上内容来自 [百度百科 ]
关于 ES详细概念见: http:// 88250./full-text-search-elasticsearch#b3_solo_h3_0
使用 C#操作 ES
NEST是一个高层的客户端,可以映射所有请求和响应对象,拥有一个强类型查询 DSL(领域特定语言),并且可以使用 .net 的特性比如协变、 Auto Mapping Of POCOs, NEST内
部使用的依然是 Elasticsearch.Net 客户端。 ( NEST)客户端提供了强类型查询 DSL,方便用户使用,源码下载。
一、如何安装 NEST
打开 VS的工具菜单,通过 NuGet 包管理器控制台,输入以下命令安装 NEST
Install-Package NEST
安装后引用了以下三个 DLL
Elasticsearch.Net.dll( 2.4.4)
Nest.dll( 2.4.4)
Newtonsoft.Json.dll ( 9.0 版本)
二、链接 elasticsearch
你可以通过单个节点或者指定多个节点使用连接池链接到 Elasticsearch 集群,使用连接池要比单个节点链接到 Elasticsearch更有优势,比如支持负载均衡、故障转移等。
通过单点链接:
1 var node = new Uri(http://myserver:9200);
2 var settings = new ConnectionSettings(node);
3 var client = new ElasticClient(settings);
通过连接池链接:
复制代码
1 var nodes = new Uri[]
{
new Uri(http://myserver1:9200),
new Uri(http://myserver2:9200),
new Uri(http://myserver3:9200)
};
7
8 var pool = new StaticConnectionPool(nodes);
9 var settings = new ConnectionSettings(pool);
10 var client = new ElasticClient(settings);
复制代码
NEST Index
为了知道请求需要操作哪个索引, Elasticsearch API期望收到一个或多个索引名称作为请求的一部分。
一、指定索引
1、可以通过 ConnectionSettings 使用 .DefaultIndex(),来指定默认索引。当一个请求里没有指定具体索引时, NEST将请求默认索引。
1 var settings = new ConnectionSettings()
2 .DefaultIndex(defaultindex);
2、可以通过 ConnectionS
文档评论(0)