首页 > 解决方案 > 使用 C# 的 NEST 客户端使用 Elasticsearch 获取重复结果

问题描述

我在下面有以下代码,用于从我的 Elsaticsearch 索引返回结果。我已将 from 大小设置为非常小的 5。在我的测试中,我得到了 45 个与我的查询匹配的文档,但是因为我正在迭代并且一次只得到 5 个,我似乎得到了重复。

我想要一些可以返回 45 条唯一记录中的每一条的东西。但是,我不知道我哪里出错了?我似乎也无法访问此服务器上的滚动 API。

        public async Task<IReadOnlyCollection<Models_Find_RemoteHostedContentItem>>
        FindAllDocumentsBySingleField(string fieldName, string fieldValue)
    {
        long total;
        do
        {
            var searchResponse = await _client.SearchAsync<Models_Find_RemoteHostedContentItem>(s =>
                s.Query(q => q.Match(m => m.Field(fieldName).Query(fieldValue))).Size(5).From(_docs.Count));
            total = searchResponse.Total;
            var docs = searchResponse.Documents;
            _docs.AddRange(docs);
        } while (_docs.Count != total);

        return _docs;
    }

标签: c#elasticsearch

解决方案


推荐阅读