Tad*_*dej 5 c# elasticsearch nest
当我这样排序时:
.Sort(sortDescriptor => sortDescriptor.Descending(product => product.TopProduct))
Run Code Online (Sandbox Code Playgroud)
我没有命中。知道为什么吗?是语法错误还是什么?我从官方 NEST/elasticsearch 文档网站得到这个。
解决方案
我必须.Suffix("keyword")
这样添加:
.Sort(sortDescriptor => sortDescriptor.Descending(product => product.TopProduct.Suffix("keyword")))
Run Code Online (Sandbox Code Playgroud)
它奏效了。我必须使用“TopProduct”上的“关键字”子字段。
字符串属性的默认映射编辑: 使用自动映射时,字符串 POCO 类型的推断映射是具有多个字段(包括关键字子字段)的文本数据类型
如果您索引没有映射的字符串,5.0+ 中的 ES 现在会自动创建该字段的文本版本和关键字版本(在 .keyword 下)。- dakroneLee HinmanElastic 团队成员
来源:https ://discuss.elastic.co/t/is-sorting-on-text-string-field-no-longer-available-in-5-x/68586/4
这有效,但有人可以向我解释文本和关键字数据类型如何工作吗?