elasticsearch - 如何在NEST中使用关键字映射?

标签 elasticsearch nest

我正在使用NEST v6.3.1,ElasticSearch v6.4.2

我无法将我的字段索引为关键字。

我试过两个属性:

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

并且流利:
client.CreateIndex(indexName, i => i
                .Mappings(ms => ms
                    .Map<Listing>(m => m
                        .Properties(ps => ps
                            .Keyword(k => k
                                .Name(n => n.Suburb)))
                        .AutoMap())
                    .Map<Agent>(m => m
                        .AutoMap())
                    .Map<BuildingDetails>(m => m
                        .AutoMap())
                    .Map<LandDetails>(m => m
                        .AutoMap())
                )
            );

两者导致同一件事:
{
  "listings": {
    "mappings": {
      "listing": {
        "properties": {          
          "suburb": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    }
  }
}

例如与我在这里看到的不符:
https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/attribute-mapping.html

当我尝试使用[GeoPoint]时,也会发生同样的事情。应该是geopoint类型,但已映射为float:
"latLong": {
            "properties": {
              "lat": {
                "type": "float"
              },
              "lon": {
                "type": "float"
              }
            }
          }

所以我想念一些东西,只是不确定。

有什么帮助吗?

谢谢

最佳答案

该索引可能已经存在,并且字段映射无法更新。在创建索引调用的响应中检查.IsValid,如果无效,请查看错误和原因。您可能需要删除索引并重新创建。

另请注意,Elasticsearch 6.x不允许在一个索引中进行多种类型映射,并且该操作将失败。为不同类型创建单独的索引,或者,如果类型具有相同的字段结构,并且您希望以相同的方式对它们进行索引/分析,则可以考虑引入一个额外的鉴别字段。

关于elasticsearch - 如何在NEST中使用关键字映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52865609/

相关文章:

java - 为elasticsearch客户端构建XContentBuilder json查询

elasticsearch - 适用于所有特定属性的Elasticsearch动态模板

datetime - 当在Elasticsearch中为文档建立索引时,NEST正在添加TimeZone

datetime - 每分钟创建一次 Elasticsearch 索引

elasticsearch - log4j2到 Elasticsearch 配置

elasticsearch - 使用NEST,在JetSearch中通过身份验证的ElasticSearch中建立索引文档

c# - 线程锁内的多线程

elasticsearch - ElasticSearch-无法过滤字符串数组

elasticsearch - 阻止只读操作的索引,使Elasticsearch处于不一致状态

regex - 自定义grok模式-匹配多个模式