Запрос Sitecore Solr: проблема с культурой перевода имени поля - PullRequest
0 голосов
/ 10 мая 2019

Мне интересно, есть ли способ заставить 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")

возвращает catalog_number_t

Номер по каталогу - однострочное текстовое поле в sitecore. Я использую Sitecore 9.1 Update-1, Solr 7.2.1.

1 Ответ

1 голос
/ 15 мая 2019

Если у вас есть версия языка культуры, сохраненная в другом имени поля в индексе Solr, вы можете использовать одну из следующих перегрузок, чтобы добавить язык культуры в конец имени поля:

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