名称为“元数据”的字典字段

如何解决名称为“元数据”的字典字段

这个问题源于我的previous post,但我认为它值得单独讨论。

在我的文档模型中,我创建了两个 Dictionary<string,object> 类型的字段:

public class Document 
{
    // some fields ....
    public Dictionary<string,object> Permissions { get; set; }
    public Dictionary<string,object> Metadata { get; set; }
}

我使用认索引策略(让弹性处理映射)。

private static void Main(string[] args)
{
    var settings = new ConnectionSettings(new Uri("http://127.0.0.1:9200"));
    settings.EnableDebugMode();
    settings.DefaultMappingFor<Document>(m => m
        .IndexName("documents")
    );
    var client = new Elasticclient(settings);

    foreach (var doc in SampleDocuments.Documents)
    {
        var result = client.IndexDocument(doc);

        Console.WriteLine($"Indexing {doc.Name}: {result.IsValid}");
    }
}

现在,查看来自 kibana 的文档,我注意到只有 Metadata 字段中的字段是动态映射的。来自 Permissions 字段的那些属于 unkNown type

Kibana screenshot

注意左侧的图标。进一步调查表明,将 Metadata 字段名称更改为其他任何名称(如 Metadata1)会禁用自动检测类型(它的索引方式与 Permissions 相同)。

我的问题是:这个名字有什么特别之处?第二个问题是:如何以与 Permissions 相同的方式强制弹性索引 Metadata 字段?我尝试添加 [nested][Object] 映射,还在 AutoMap() 中设置最大递归级别,但没有成功。

解决方法

您只需在堆栈管理 > 索引模式 > 刷新中refresh your index pattern 以确保获取最新的映射更改。

另外值得注意的是,从 7.11.0 开始,作为索引模式的 refresh button has disappears 现在会在需要时自动刷新。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?