代码之家  ›  专栏  ›  技术社区  ›  Youngjae

Azure搜索结果是否保证*查询的顺序?

  •  0
  • Youngjae  · 技术社区  · 8 年前

    我想通过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不提供 寻呼

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

    我需要维护另一个查找表来满足我的需求吗?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Nate Ko    8 年前

    *是通配符查询。匹配通配符查询的文档在排序中得到相同的恒定分数,因为无法衡量文档与 “即使发出相同的查询,也可以在一个响应中排名第一,在另一个响应中排名第七。

    为了获得通配符查询的一致顺序,我建议传入一个$orderBy子句,search=*&$例如,orderBy=id asc。Azure Search确实支持通过$skip和$top进行分页。这 document