gpt4 book ai didi

c# - ElasticSearch是否使用ElasticProperty支持动态字段?

转载 作者:行者123 更新时间:2023-12-02 23:34:59 26 4
gpt4 key购买 nike

我正在使用Nest访问C#中的ElasticSearch。我已经建立了一个结构,该结构指定ElasticProperty属性来定义要存储/索引/排序/等的字段。一切都很好。

现在,我有了一个新的要求,可以保存和搜索其他“动态”数据...

这些新数据的工作方式如下:我的数据结构(项目)可以具有多个关联的字符串标签,并分为不同的部分。因此,单个Item可能具有Section1.Label1, Section1.Label2, Section2.Label1,Section3.Label4

如果我将其存储在C#中,则可能会使用Dictionary<string, List<string>>进行存储。但是在ElasticSearch中,我还需要能够针对这些标签进行搜索,例如“给我所有具有Section2.Label1的项目”。标签将不需要进行分析(无论是否存在)。

感谢您提供的任何线索来告诉Nest如何存储这样的数据字段。

更新1:好像我正在查看某种类型的[ElasticProperty(Type = FieldType.Nested)],而不是动态映射。我应该只使用标记为嵌套类型的Dictionary<string, List<string>>吗?

最佳答案

看来这可行...

    [ElasticProperty(Index = FieldIndexOption.NotAnalyzed, Store = true, Type = FieldType.Nested, OmitNorms = true, IncludeInAll = false)]
public Dictionary<string, List<string>> MyLabels { get; set; }

在ElasticSearch端,它是一个包含字符串数组的Map。我仍然必须在“搜索”端进行工作,以提出一个查询,该查询将确定特定映射中是否存在特定标签,但这应该很简单(敲木头)。

关于c# - ElasticSearch是否使用ElasticProperty支持动态字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32458839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com