搜索引擎ElasticSearch的.Net客户端

搜索引擎ElasticSearch的.Net客户端

  • 开源协议:未知
  • 操作系统: Windows
  • 开发语言:C#
  • 项目所有者:elastic
  • 收录时间:2016-01-23
  • 分享:
编辑评级
3

项目详细介绍

     NEST是Elasticsearch官方的.Net客户端驱动。它的目标是提供一个固定的,强类型的有良好api接口。
 

QQ图片20160123231031.png

安装:

PM> Install-Package NEST

连接单个节点:

var node = new Uri(" 
var settings = new ConnectionSettings(node);
var client = new ElasticClient(settings);

使用连接池:

var nodes = new Uri[]
{    
new Uri("http://myserver1:9200"),   
 new Uri("http://myserver2:9200"),    
 new Uri("http://myserver3:9200")
};
var pool = new StaticConnectionPool(nodes);
var settings = new ConnectionSettings(pool);
var client = new ElasticClient(settings);

索引:

var tweet = new Tweet
{
    Id = 1,
    User = "kimchy",
    PostDate = new DateTime(2009, 11, 15),
    Message = "Trying out NEST, so far so good?"};var response = client.Index(tweet);


var response = client.IndexAsync(tweet); // returns a Task<IndexResponse>


获取一个文档:

var response = client.Get<Tweet>(1); 
// returns an IGetResponse mapped 1-to-1 with the Elasticsearch JSON response
var tweet = response.Source; // the original document

查询文档:

var response = client.Search<Tweet>(s => s
    .From(0)
    .Size(10)
    .Query(q =>
            q.Term(t => t.User, "kimchy")
            || q.Match(mq => mq.Field(f => f.User).Query("nest"))
        )
    );


另外一种查询方式:

var request = new SearchRequest
{
    From = 0,
    Size = 10,
    Query = new TermQuery { Field = "user", Value = "kimchy" } 
        || new MatchQuery { Field = "description", Query = "nest" }
};var response = client.Search<Tweet>(request);


Nest的知名用户:

  • stackoverflow.com (and the rest of the stackexchange family).

  • 7digital.com (run NEST on mono).

  • rijksmuseum.nl (Elasticsearch is the only datastorage hit for each page).

  • Kiln FogCreek's version control & code review tooling. They are so pleased with

  • Elasticsearch that they made a video about how pleased they are!

标签:.net