gpt4 book ai didi

elasticsearch - 在2.x版本中使用Nest Client替代AddSortField

转载 作者:行者123 更新时间:2023-12-03 01:56:13 26 4
gpt4 key购买 nike

当前,我们使用NEST客户端进行所有索引操作,其中“AddSortField”用于对分析的字段进行排序(以及排序分析器)。看起来该选项在2.X中不再可用。有其他选择吗?否则,将不胜感激有关在2.X中对分析字段进行排序的任何建议。

注意:当前使用的NEST和Elasticsearch版本是1.X

谢谢,

帕万

最佳答案

NEST 1.x中的AddSortField只是一种方便的方法,用于将属性映射为 multi_field 以及要在排序时使用的sort子字段。对于未指定stringSortAnalyzer字段,此字段为 not_analyzed

为了在NEST 2.x中实现相同的目的,您可以use fluent mapping将属性映射为multi_field,添加sort子字段

var descriptor = new CreateIndexDescriptor("myindex")
.Mappings(ms => ms
.Map<Company>(m => m
.Properties(ps => ps
.String(s => s
.Name(n => n.Name)
// map as multi_field
.Fields(fs => fs
.String(ss => ss
.Name("sort")
.Index("sortAnalyzer")
)
)
)
)
)
);

sorting时,您将按 name.sort排序
var response = client.Search<Company>(s => s
.Query(q => q.MatchAll())
.Sort(ss => ss
.Ascending(p => p.Name.Suffix("sort"))
)
);

关于elasticsearch - 在2.x版本中使用Nest Client替代AddSortField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36477777/

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