我想知道是否仍然有强制FieldNameTranslator将语言追加到字段名称的方法。
query = context.GetQueryable<SearchResultItem>(i => i[context.Index.FieldNameTranslator.GetIndexFieldName("Catalog Number")].Contains("m0202"));
上面的代码变成了solr查询:
https://localhost:8983/solr/sitecore_web_index/select?q=catalog_number_t:(*m0202*)
返回0个结果。
如果我在字段名称后加上_en:
https://localhost:8983/solr/sitecore_web_index/select?q=catalog_number_t_en:(*m0202*)
我得到了预期的结果。
那么如何通过代码添加它?
甚至
context.Index.FieldNameTranslator.GetIndexFieldName("catalog_number_t_en")
返回商品目录编号
目录号-网站核心中的单行文本字段。 我正在使用Sitecore 9.1 Update-1,Solr 7.2.1。
答案 0 :(得分:1)
如果在Solr索引中的其他字段名称中存储了区域性语言版本,则可以使用以下重载之一,以便将区域性附加到字段名称的末尾:
string SolrFieldNameTranslator.GetIndexFieldName(string fieldName, CultureInfo culture);
string SolrFieldNameTranslator.GetIndexFieldName(string fieldName, Type returnType, CultureInfo culture);