gpt4 book ai didi

sorting - Elasticsearch NEST - SortAceding 不对文档进行排序

转载 作者:行者123 更新时间:2023-11-29 02:55:16 25 4
gpt4 key购买 nike

我正在尝试根据字段名称对结果集进行排序。但是 Sort 不适用于 string 类型。

尝试过的代码:-

public class Company
{
public long Number { get; set; }
public string Name{ get; set; }
}

我的问题是:当我使用 SortAscending API 时,排序没有完成,如下所示

var resultSet = client.Search<Article>(s => s
.Type("Company")
.From(0)
.Size(200)
.QueryString("Stack OverFlow")
.SortAscending(f => f.Name));

注意:如果我将字段名称设置为 Number(f => f.Number),文档将列为已排序

请帮忙

最佳答案

您对索引中的名称字段进行排序的问题可能与该字段正在被分析/标记化这一事实有关。来自Elasticsearch Sort Guide :

For string based types, the field sorted on should not be analyzed / tokenized.

因此,您需要提供一个未分析/标记化的附加字段来执行排序。您可以通过向文档添加一个附加字段并将该类型/字段的映射设置为 not_analyzed 来实现此目的,或者您可以利用 multi_field(现在只是 fields 在 1.x 版中)在您现有的名称字段上。有关如何完成这些选项之一的指导,请参阅以下内容:

关于sorting - Elasticsearch NEST - SortAceding 不对文档进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22087580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com