我有一个叫做elasticsearch的索引 challenges
,其中包含类型为 Challenge
.
当我在kibana控制台中执行以下filter查询时,它返回9个结果,这是正确的。
GET challenges/_search
{
"query": {
"bool": {
"filter": [
{
"term": {
"type": "Orphan"
}
}
]
}
}
}
但是,来自nest客户端的以下查询返回零命中:
var challenges = await _client.SearchAsync<Challenge>(s => s
.Query(q => +q
.Term(t => t.Type, Models.Enums.ChallengeType.Orphan)
)
);
我还尝试了以下变体,但没有成功:
var challenges = await _client.SearchAsync<Challenge>(s => s
.Query(q => q
.Bool(b => b
.Filter(f => f
.Term(t => t
.Field(f => f.Type)
.Value(challengeType)
)
)
)
)
);
我要筛选的type属性是一个枚举,其值如下:
public enum ChallengeType
{
SixDimensions,
Intro,
Normal,
UserCreated,
Orphan,
Youmate
}
并作为关键字存储在索引中。实际位于索引中的示例对象:
{
"id": "3bce0ce1-9676-4858-b165-1442a443bf5a",
"icon": "water-bottle.png",
"index": 0,
"default-time": "09:00",
"default-days": [
"Saturday",
"Monday",
"Wednesday"
],
"default-repetitions": 3,
"category": "A",
"title": {
"Persian": "آب خوردن"
},
"dimension": "Physical",
"type": "Orphan",
"id-package": "00000000-0000-0000-0000-000000000000",
"intro-pages": [ ],
"date-created": "2020-10-14T12:39:21.8427517+03:30",
"notify": true,
"template": 0,
"belongs-to-user": "00000000-0000-0000-0000-000000000000",
"active": false
}
为什么控制台的结果与从嵌套客户机执行时的结果不同,您有什么建议吗?
1条答案
按热度按时间zzwlnbp81#
枚举应标记为
StringEnumAttribute
序列化为字符串否则,枚举将被序列化为其基础整数值。