ElasticSearch Nest Flags c#
本文关键字:Flags Nest ElasticSearch | 更新日期: 2023-09-27 18:11:04
基本上我有一个类似的标志字段
[Flags]
public enum MyFlags
{
FirstFlag = 1,
SecondFlag = 2
}
public class MyClass
{
public int Id {get;set;}
public MyFlags MyFlagProperty { get; set; }
}
Client.Search<T, TResult>(c=>c.Query ??? )
我这里的问题是我找不到任何方法来搜索只需要我的FirstFlag的条目。我这么说不对吗?我应该使用2个属性吗?
public class MyClass
{
public int Id {get;set;}
public bool MyFirstFlag { get; set; }
public bool MySecondFlag { get; set; }
}
Client.Search<T, TResult>(c => c.Query(d => d.Term("MyFirstFlag", true)));
这里最好的方法是什么?你会建议完全不使用标志,只使用属性吗?
这里有几种方法可以使用
- 将属性设置为一组枚举值
- 使用自定义
JsonConverter
将一个带有FlagsAttribute
的枚举序列化为一个集合,并将一个集合反序列化为一个枚举 - 有单独的属性,如你所建议的
我个人选择数字2,因为它将允许您像在代码中一样使用enum,但将字段存储为Elasticsearch中的集合并轻松查询它。