используя диапазон дат в Lucene.net - PullRequest
3 голосов
/ 17 ноября 2008

Я понимаю, как Lucene.net может работать для индексации текста. Смогу ли я эффективно искать документы на основе заданного диапазона дат? Или Lucene.net будет просто использовать сопоставление текста, чтобы соответствовать датам?

Ответы [ 2 ]

6 голосов
/ 20 ноября 2008

Lucene.Net будет просто использовать сопоставление текста, поэтому вам нужно правильно отформатировать даты перед добавлением в индекс:

    public static string Serialize(DateTime dateTime)
    {
        return dateTime.ToString("yyyyMMddHHmmss", CultureInfo.InvariantCulture);
    }

    public static DateTime Deserialize(string str)
    {
        return DateTime.ParseExact(str, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
    }

Затем можно, например, выполнить запрос на основе диапазона, чтобы отфильтровать по дате (например, с 2006 * по 2007 *, чтобы включить все даты в 2006 и 2007).

1 голос
/ 13 августа 2010

Я попал в беду, когда преобразовал дату в yyyymmddHHmmssff. Когда я попытался отсортировать данные, это дало мне исключение, которое слишком велико, чтобы что-то конвертировать. Поэтому я ищу и нашел, что вам нужно иметь два столбца. один в yyyymmdd, а другой HHmmss, а затем используйте Sort[] и укажите эти два столбца, а затем используйте. Это решит проблему.

...