当前位置: 首页 > 面试题库 >

在Nest 5.5.0中为属性设置not_analyzed

刁茂才
2023-03-14
问题内容

我试图通过Nest 5.5.0设置“ not_analyzed”索引类型,但我不知道该怎么做。

我的初始化:

var map = new CreateIndexDescriptor(INDEX_NAME)
     .Mappings(ms => ms.Map<Project>(m => m.AutoMap()));

var connectionSettings = new ConnectionSettings().DefaultIndex(INDEX_NAME);
_client = new ElasticClient(connectionSettings);

_client.Index(map);

和Project类:

[ElasticsearchType(Name = "project")]
public class Project
{
    public Guid Id { get; set; }
    [Text(Analyzer = "not_analyzed")]
    public string OwnerIdCode { get; set; }
}

在我通过Postman调用index / _mapping REST之后,这种初始化方式会创建某种奇怪的映射。在普通的“映射” JSON部分中,紧挨着“
createindexdescriptor”,具有几乎相同的数据。

"examinations4": {
    "mappings": {
        "project": {
            (...)
        },
        "createindexdescriptor": {
            "properties": {
                "mappings": {
                    "properties": {
                        "project": {
                            "properties": {
                                "properties": {
                                    "properties": {
                                        "id": {
                                            "properties": {
                                                "type": {
                                                    "type": "text",
                                                    "fields": {
                                                        "keyword": {
                                                            "type": "keyword",
                                                            "ignore_above": 256
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "ownerIdCode": {
                                            "properties": {
                                                "analyzer": {
                                                    "type": "text",
                                                    "fields": {
                                                        "keyword": {
                                                            "type": "keyword",
                                                            "ignore_above": 256
                                                        }
                                                    }
                                                },
                                                "type": {
                                                    "type": "text",
                                                    "fields": {
                                                        "keyword": {
                                                            "type": "keyword",
                                                            "ignore_above": 256
                                                        }
 (...)

问题答案:

要在Elasticsearch
5.0+中设置未分析的字符串字段,您应该使用keyword类型,并在创建索引时使用CreateIndex()或在使用将第一个文档发送到索引之前传递映射Map<T>()。就您而言,我认为您正在寻找类似的东西

void Main()
{
    var connectionSettings = new ConnectionSettings()
        .DefaultIndex("default-index");

    var client = new ElasticClient(connectionSettings);

    client.CreateIndex("projects", c => c
        .Mappings(m => m
            .Map<Project>(mm => mm
                .AutoMap()
            )
        )
    );
}

[ElasticsearchType(Name = "project")]
public class Project
{
    [Keyword]
    public Guid Id { get; set; }

    [Keyword]
    public string OwnerIdCode { get; set; }
}

我认为该Id属性也应标记为关键字类型。



 类似资料:
  • 问题内容: 我创建了以下内容… 我现在将如何设置CSS属性,例如? 问题答案: 用途:

  • 问题内容: 鉴于Python的动态性,如果无法实现,我会感到震惊: 我想更改的实现。 我试图简单地写成这样: 但这告诉我。 这是防止我做可能(可能)愚蠢的事情的好尝试,但是我真的很想继续做下去。我怀疑解释器有某种可以修改的查找表,但我在Google上找不到类似的表。也不起作用- 它返回了与只读属性完全相同的错误。 我很想寻找一个Python 2.7解决方案,如果那很重要的话,尽管没有理由拒绝抛出适

  • 装饰器允许我们在指令的host元素上编程设置属性值。 它类似于模板中定义的属性绑定,除了它专门定位到host元素。 对每个变化检测周期检查绑定,因此如果需要,它可以动态地改变。 注意,对于的两个用例,我们传递一个字符串值到我们想要改变的属性。如果我们不向装饰器提供字符串,那么将使用类成员的名称。

  • 主要内容:Jsoup 设置属性 语法,Jsoup 设置属性 说明,Jsoup 设置属性 示例以下示例将展示在将 HTML 字符串解析为 Document 对象后使用方法设置 dom 元素的属性、批量更新和添加/删除类方法。 Jsoup 设置属性 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 link : 元素对象表示表示锚标记的 html 节点元素。 link.attr() : attr

  • 可查看或修改模型属性,例如,设置自定义 ID,修改模型名称、尺寸、位置等。 不同类型模型的属性设置不同,如建筑、门窗、墙等。另外,在人物/动物/植物模型属性中,设有播放动画属性。 传送点设置 编辑场景时,可以通过模型的自定义属性设置传送点。在预览场景时,第一人称行走模式下,当行走到传送点的位置时,会传送到配置的地点。 在自定义属性中添加传送属性 _Portal_,参数配置为要传送目标物体的自定义

  • 问题内容: 是否可以通过python中的字典创建对象,使得每个键都是该对象的属性? 像这样: 问题答案: 当然,是这样的: 更新资料 正如布伦特·纳什(Brent Nash)所建议的那样,您还可以通过允许使用关键字参数来使其更加灵活: 然后您可以这样称呼它: 或像这样: 甚至像这样: