c# - 如何使用NEST API搜索数据?

标签 c# elasticsearch nest

我有具有默认设置的ElasticSearch客户端。

elasticClient = new ElasticLowLevelClient();

我也有一个简单的帖子实体。
[ElasticsearchType(IdProperty = "Id", Name = "post")]
    public class Post
    {
        [Number(Name = "id")]
        public int Id { get; set; }
        [Text(Name = "title")]
        public string Title { get; set; }
        [Text(Name = "description")]
        public string Description { get; set; }
    }

我想执行与Es文档中的查询类似的查询:
var searchResults = client.Search<Post>(p=>p
    .From(0)
    .Size(10)
    .Query(q=>q
         .Term(p=>p.Title, "stackoverflow")
    )
);

但是我认为ES API已更改。第一个参数应该是PostData。这就是为什么我不知道查询外观的原因。

我的ElasticSearch的版本是2.3.5
NEST的版本是5.0.1

也许我需要较低版本的NEST?

最佳答案

您正在从Elasticsearch.Net实例化low level client的实例。

如果您改用NEST的高级客户端,一切都会很好

var elasticClient = new ElasticClient();

在内部,NEST使用低级客户端,这就是为什么Elasticsearch.Net作为依赖项引入的原因。

关于c# - 如何使用NEST API搜索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41975860/

相关文章:

.net - Elasticsearch .net NEST - DeleteByQuery 不起作用但搜索相同的查询有效

c# - 从 C# 构造函数中删除多余的逗号

elasticsearch - elasticsearch-创建TransportClient单例实例

elasticsearch - 在没有Elasticsearch的情况下安装grafana

elasticsearch - 如何为elasticsearch的repository-hdfs插件配置elasticserch.yml

c# - 如何在 ElasticSearch 中设置索引的 TTL

c# - C# 中是否有非唯一键排序列表泛型集合?

c# - Azure 存储容器(通用 v2)告诉我无法从代码中标记 blob

c# - 如何确定 ASP.Net 缓存的总大小?

针对不同类型的 C# NEST 条件过滤器