我正在尝试将项目转换为使用最新的Elasticsearch 6并遇到此问题.我不知道问题是"产品"还是"产品".在我的映射和属性中,我指定了"产品",所以当我尝试索引产品时,我不确定为什么会出现此错误.
错误:
从PUT上的不成功低级别调用构建的无效NEST响应:/ products/products/1?pretty = true&error_trace = true
"拒绝将映射更新到[products],因为最终的映射将有多种类型:[Product,products]"
请求:
{
"id": 1,
"warehouseId": 0,
"productStatus": 1,
"sku": "102377",
"name": "Name",
"shortDescription": "Description",
"longDescription": "Description",
"price": 37.3200
}
Run Code Online (Sandbox Code Playgroud)
我的代码:
[ElasticsearchType(Name = "products")]
public class Product : BaseEntity
{
[Key]
public int Id { get; set; }
public int WarehouseId { get; set; }
[Display(Name = "Product Status")]
public Enums.ProductStatus ProductStatus { get; set; }
[Required, StringLength(10)]
public string Sku { get; set; }
[Required, StringLength(200)]
public string Name { get; set; }
[StringLength(500), Display(Name = "Short Description")]
public string ShortDescription { get; set; }
[DataType(DataType.MultilineText), Display(Name = "Long Description")]
public string LongDescription { get; set; }
[Column(TypeName ="Money")]
public Nullable<decimal> Price { get; set; }
}
connection.DefaultMappingFor<Product>(m => m.IndexName("products"));
Run Code Online (Sandbox Code Playgroud)
在 elasticsearch v6 之前,一个索引默认只能有 1 个映射。在之前的 5.x 版本中,一个索引可以进行多重映射。尽管您可以通过更新索引设置来更改此默认设置"index.mapping.single_type": false。
在您的情况下,我的假设是您已经使用 mapping 创建了索引Product。这就是为什么它在您的第二个请求中使用“产品”(小情况下为 p)拒绝新映射的原因。
| 归档时间: |
|
| 查看次数: |
13342 次 |
| 最近记录: |