在Sitecore中索引双字段期间的本地化问题

时间:2017-11-09 07:40:44

标签: lucene sitecore

我对Sitecore 7.5和Lucene索引存在问题。我有“纬度”单行文本字段的项目。此字段存储带有点(不是逗号)的双数字。 我在我的计算机上设置文化作为en-US,所以它应该使用这样的数字。我也将IIS文化设置为相同。但是当我重建索引时,我收到以下错误:

17840 01:46:43 FATAL Could not add field {25D5A28F-F502-42CE-8FDD-C6432E64AE67} : latitude for indexable sitecore://web/{94D5DBF1-FEB9-464B-B887-A99181B58268}?lang=en&ver=1
Exception: System.FormatException
Message: Input string was not in a correct format.
Source: mscorlib

   at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)

   at System.String.System.IConvertible.ToDouble(IFormatProvider provider)

   at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)

   at Sitecore.ContentSearch.LuceneProvider.LuceneFieldBuilder.CreateField(String name, Object value, LuceneSearchFieldConfiguration fieldConfiguration, IIndexFieldStorageValueFormatter indexFieldStorageValueFormatter)

   at Sitecore.ContentSearch.LuceneProvider.LuceneDocumentBuilder.AddField(String name, Object value, LuceneSearchFieldConfiguration fieldSettings, Single boost)

   at Sitecore.ContentSearch.LuceneProvider.LuceneDocumentBuilder.AddField(IIndexableDataField field)
   at Sitecore.ContentSearch.AbstractDocumentBuilder`1.CheckAndAddField(IIndexable indexable, IIndexableDataField field)

我尝试调试这些方法,发现System.Threading.Thread.CurrentThread.CurrentCulture是Sitecore.ContentSearch.LuceneProvider.LuceneFieldBuilder.CreateField()方法中的“ru-RU”。 但是在我的c#代码中,我将System.Threading.Thread.CurrentThread.CurrentCulture设置为“en-US”。我在调试模式下检查了这个。 那么在索引过程中如何改变CurrentCulture呢?我在Windows或IIS文化设置中没有“ru-RU”设置。

2 个答案:

答案 0 :(得分:0)

@Andrei几个月前我遇到了同样的问题(使用MS SQL中的存储过程)。

我已将默认文化更改为" en-US"在我的本地计算机(Windows 10)和IIS上。不幸的是,它对我没有帮助。在我的情况下,我重写了我的存储过程,我用双倍数字替换了分隔符。

所以,这是一个非常复杂的问题。我认为您应该使用带有ENG版本的安装程序在本地计算机上重新安装操作系统。

答案 1 :(得分:0)

尝试从命令行运行此代码:

appcmd set config /commit:WEBROOT /section:globalization /culture:en-us

will set你的文化“en-us”。