Я пытаюсь реализовать запрос solr с помощью .NET, но получаю неверный запрос, когда пытаюсь подключиться к solr для поиска, поскольку мой формат даты неверен. Может ли кто-нибудь сказать мне точный синтаксис для создания формата даты в .net
Created_Dt: [12.12.2008 15:45 TO *]
SolrNet уже выполняет преобразование в формат времени Solr для вас, вам нужно работать только со стандартным типом DateTime:
DateTime
new SolrQueryByRange<DateTime?>("Created_Dt", new DateTime(2008, 12, 12, 15, 45, 0), null);
Я могу получить формат даты solr, используя код ниже,
DateTimeFieldSerializer date = new DateTimeFieldSerializer(); string fromDt = date.SerializeDate(searchCriteria.From); string toDt = date.SerializeDate(searchCriteria.To);
Это отлично работает, и теперь я могу искать, используя диапазон дат.
Вам необходимо выполнить поиск на основе UTC timestmap .Вот пример кода .NET для его генерации:
DateTime dt = DateTime.Now.ToUniversalTime(); System.Diagnostics.Debug.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ"));
И запрос с использованием вашего поля примера, который будет использовать этот формат:
Created_Dt:[2011-06-07T13:35:47Z TO NOW]
Кроме того, убедитесь, что вы конвертируете свои датыв формате UTC перед сохранением их .