Sitecore Solr查询:字段名称翻译文化问题

时间:2019-05-10 18:50:12

标签: c# solr sitecore

我想知道是否仍然有强制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。

1 个答案:

答案 0 :(得分:1)

如果在Solr索引中的其他字段名称中存储了区域性语言版本,则可以使用以下重载之一,以便将区域性附加到字段名称的末尾:

string SolrFieldNameTranslator.GetIndexFieldName(string fieldName, CultureInfo culture);
string SolrFieldNameTranslator.GetIndexFieldName(string fieldName, Type returnType, CultureInfo culture);