【发布时间】:2021-02-09 12:59:18
【问题描述】:
我有一个包含字段的文档模型,该字段是一个字典,可以采用任何值,如下所示:
public class Document
{
public string Id { get; set; }
public string Description { get; set; }
public Dictionary<string, object> Permissions { get; set; }
public Dictionary<string, object> Metadata { get; set; }
}
例如
client.IndexDocument(new Document
{
Id = "4",
Description = "ordinary document",
Metadata = new Dictionary<string, object>
{
{ "publish_date", new DateTime(1930, 10, 11) },
{ "author_country", "RU" },
{ "salary", 2590.00 },
{ "likes", 23 },
}
})
映射是自动完成的,因此默认分析器会更改字典的值,例如:将字符串更改为小写或删除破折号,因此此代码不会返回任何结果:
var result = client.Search<Document>(s => s
.Query(q =>
q.Term(new Field("metadata.author_country"), "RU"))
);
如何为任何元数据值禁用此行为?或者设置自定义分析器?还是仅对给定类型的值禁用它?
【问题讨论】:
标签: c# elasticsearch nest