Nest和Elasticsearch - 了解基础知识

时间:2014-02-26 15:10:36

标签: c# elasticsearch nest

我正在学习NEST和弹性搜索,而且一些基础知识令我感到困惑。如果我使用Nest集成测试创建基本索引:

var client = ElasticsearchConfiguration.Client;

        if (client.IndexExists(ElasticsearchConfiguration.DefaultIndex).Exists)
            return;

        var projects = NestTestData.Data;
        var people = NestTestData.People;

        client.CreateIndex(ElasticsearchConfiguration.DefaultIndex, c => c
            .NumberOfReplicas(0)
            .NumberOfShards(1)
            .AddMapping<ElasticSearchProject>(m => m.MapFromAttributes())
            .AddMapping<Person>(m => m.MapFromAttributes())
        );
        client.CreateIndex(ElasticsearchConfiguration.DefaultIndex + "_clone", c => c
            .NumberOfReplicas(0)
            .NumberOfShards(1)
            .AddMapping<ElasticSearchProject>(m => m.MapFromAttributes())
            .AddMapping<Person>(m => m.MapFromAttributes())
        );

        var bulkParameters = new SimpleBulkParameters() { Refresh = true };
        client.IndexMany(projects, bulkParameters);
        client.IndexMany(people, bulkParameters);
        client.Refresh(new[] {ElasticsearchConfiguration.DefaultIndex, ElasticsearchConfiguration.DefaultIndex + "_clone"});

我不明白此操作后ElasticClient的状态。

1)为什么此操作后ElasticClient仍然有效= False。那么有效意味着什么?

2)CreateIndex函数返回一个IIndicesOperationResponse,即使我知道索引已经创建,他的状态属性OK也设置为false。什么意思好吗?

1 个答案:

答案 0 :(得分:1)

  1. 客户端上的.IsValid构造在旧版本中用作一次性ping,以查看客户端是否可以连接到配置的主机。这一点早已被删除,因为它引起了更多的混乱,并没有真正提供任何东西。

  2. Elasticsearch 1.0标准化并从响应中删除了所有OK属性。