Solr – запрос C#, добавляющий «s» в поле сортировки ⇐ C#

Место общения программистов C#
Anonymous
Solr – запрос C#, добавляющий «s» в поле сортировки

Сообщение Anonymous »

Наш порядок сортировки работает неправильно, и я обнаружил, что это связано с тем, что генерируемый запрос solr заканчивается на sort=date_tdts%20desc - тогда как он должен заканчиваться на sort=date_tdt%20desc (обратите внимание на лишняя буква "s"). Но я не уверен, откуда в коде берутся эти дополнительные буквы. Это конфигурация индексного поля:

Код: Выделить всё

[IndexField("date_tdt")]
public DateTime Date { get; set; }
Вот код, который генерирует запрос:

Код: Выделить всё

    var orderExpression = searchAdapter.MapFilterToOrder(query, out bool orderByDescending);

var resultsQueryable = providerSearchContext.GetQueryable()
.Where(basePredicate);

if(query.Filters != null)
{
var queryPredicate = CombinePredicates(query.Filters.Select(searchAdapter.MapFilterToPredicate));
resultsQueryable = resultsQueryable.Where(queryPredicate);
}

if (orderExpression != null)
{
resultsQueryable = orderByDescending
? resultsQueryable.OrderByDescending(orderExpression)
: resultsQueryable.OrderBy(orderExpression);
}

Код: Выделить всё

    public virtual Expression MapFilterToOrder(SearchQuery query,
out bool @descending)
{
@descending = true;

return x => x.Date;
}
почему к date_tdt добавляется буква s?

Подробнее здесь: https://stackoverflow.com/questions/790 ... sort-field

Вернуться в «C#»