0

我想通过 AzSearch C# SDK 管理 AzSearch 文档(索引项)。

我尝试做的是*连续按查询结果(主要是结果)列出文档并编辑它们的值。

列出查询结果如下;

public async Task<IEnumerable<MyIndexModel>> GetListAsync(string query, bool isNext = false)
{
    if (string.IsNullOrEmpty(query)) query = "*";
    DocumentSearchResult list;
    if (!isNext)
    {
        list = await _indexClient.Documents.SearchAsync(query);
    }
    else
    {
        list = await _indexClient.Documents.ContinueSearchAsync(ContinuationToken);
    }
    ContinuationToken = list.ContinuationToken;
    return list.Results.Select(o => o.Document.ToIndexModel());
}

一个要求是跳转到第 n 个项目列表。由于 AzSearch 不提供paging,我想知道它是否提供有序列表。

如果我们更新文档计数(不进一步索引),AzSearch 是否提供未更改/有序列表,以便我可以jump to 80th list通过运行ContinueSearchAsync()方法 80 次获得相同的文档?

我是否必须为我的要求维护另一个查找表?

4

1 回答 1

0

* 是通配符查询。与通配符查询匹配的文档在排名中获得相同的恒定分数,因为无法衡量文档与. 此外,不保证同一乐谱文件之间的顺序。即使发出相同的查询,与“ ”匹配的文档也可以在一个响应中排名第一,在另一个响应中排名第七。

为了获得通配符查询的一致排序,我建议传入一个 $orderBy 子句,例如 search=*&$orderBy=id asc。Azure 搜索确实支持通过 $skip 和 $top 进行分页。本文档提供了指导。

于 2017-08-16T17:52:14.700 回答