Symfony 填充上的FOSElasticaBundle NumberFormatException错误

Symfony 填充上的FOSElasticaBundle NumberFormatException错误,symfony,foselasticabundle,Symfony,Foselasticabundle,我在Symfony 2项目中使用FOSElasticaBundle。由于今天重新编制索引会导致以下错误: 索引:/app/hotel/1导致MapperParsingException[无法解析] [价格来源];嵌套:NumberFormatException[对于输入字符串: "410.00"]; 在我的yml中,price from字段定义如下: priceFrom: type: decimal nullable: true precision: 7 scale: 2

我在Symfony 2项目中使用FOSElasticaBundle。由于今天重新编制索引会导致以下错误:

索引:/app/hotel/1导致MapperParsingException[无法解析] [价格来源];嵌套:NumberFormatException[对于输入字符串: "410.00"];

在我的yml中,
price from
字段定义如下:

priceFrom:
   type: decimal
   nullable: true
   precision: 7
   scale: 2
   comment: ''
   column: price_from
我的
fos_elastica
config如下所示(config.yml):

我用于重新索引的命令:
php应用程序/控制台fos:elastica:populate

到目前为止,上述设置一直有效。我希望有人能为我指出解决这个问题的好方向

版本: 鲁弗林/弹性体(2.1.0) friendsofsymfony/弹性束(v3.1.5) symfony/symfony(v2.6.11)


PS:我的项目中没有其他实体使用priceFrom字段

在映射中,您将PriceFrom定义为整数,然后传递一个小数


我没有测试过它,但它显然似乎是罪魁祸首。

在映射中,您将PriceFrom定义为整数,但随后传递一个小数


我还没有测试过它,但它显然似乎是主要候选人的罪魁祸首。

弗朗西斯科·阿贝尼的答案是正确的。如果您已经将ES中的某个内容推送到integer(或ES将其定义为integer),当您尝试在此处保存十进制数据时,它将生成异常

我总是在映射中显式指定类型,如:

 id: {"type" : "integer"}
 shop_id: {"type" : "integer"}
 source: {"type" : "string", "index" : "not_analyzed"}
在这里,我看到了两种解决问题的方法

  • 索引别名和索引合并
  • 在映射中指定类型;杀伤指数;重新填充

  • 我在开发中使用了第二种变体:)

    弗朗西斯科·阿贝尼的答案是正确的。如果您已经将ES中的某个内容推送到integer(或ES将其定义为integer),当您尝试在此处保存十进制数据时,它将生成异常

    我总是在映射中显式指定类型,如:

     id: {"type" : "integer"}
     shop_id: {"type" : "integer"}
     source: {"type" : "string", "index" : "not_analyzed"}
    
    在这里,我看到了两种解决问题的方法

  • 索引别名和索引合并
  • 在映射中指定类型;杀伤指数;重新填充

  • 我在dev上使用了第二个变量:)

    我已经尝试将price从映射更改为string或decimal,但相同的错误不断出现。好的,请确保在更改后清除缓存。这可能不是原始问题的原因,但无论如何都需要修复。我已经尝试将Price从映射更改为string或decimal,但相同的错误不断出现。好的,请确保在更改后清除缓存。这可能不是最初问题的原因,但无论如何都需要解决。