如何解决Nest 在查询中将字段的第一个字母转换为小写
我正在尝试将字典
public Dictionary<string,Dictionary<string,string>> CurrentJson { get; set; }
public string CURRENT_JSON
{
set
{
CurrentJson = new Dictionary<string,string>>
{ { TableName.toupper(),JsonConvert.DeserializeObject<Dictionary<string,string>>(value) } };
}
}
我设置字典时的键将是大写的。字母
public async Task<T> Upsert(T document,string username = "N/A")
{
// check if name is duplicated
if (!await IsUniqueDocument(document))
throw new Exception("name duplicated");
PrepareDocument(document,username);
IndexRequest<T> request = new IndexRequest<T>(document,IndexName,TypeName,document.Id);
var response = await Client.IndexAsync<T>(request);
if (response.IsValid) return document;
// Todo: check thrown error
throw new Exception(response.Result.ToString());
}
注意:prepareDocument 函数不会改变字典
解决方法
查看 NEST 客户端的 Field inference 文档:https://www.elastic.co/guide/en/elasticsearch/client/net-api/7.x/field-inference.html#camel-casing
如果您希望 NEST 根本不更改字段名称的大小写,只需将 Func
setup = WithConnectionSettings(s => s.DefaultFieldNameInferrer(p => p));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。