Я создал индекс, который индексирует элементы событий в разных разделах веб-сайта.
Эти элементы находятся на веб-сайте в такой структуре:
/Start/Section1/Events/2011/12/25/X-mas
/Start/Section2/Events/2012/01/01/New-years-day
Эти пути хранятся в поле path
в индексе.
На стартовой странице мне нужен обзор событий из разных разделов.
Когда я нахожусь в разделе, мне нужны только события, помещенные под этим разделом.
Я добавляю логический запрос вроде этого:
QueryParser queryParser = new QueryParser("path", analyzer);
Query query = queryParser.Parse(startPath);
completeQuery.Add(query, BooleanClause.Occur.MUST);
«путь» - это поле, добавляемое через пользовательский индексный скрипт;
Чтобы получить элементы для стартовой страницы, я искал бы свой индекс, используя:
string startPath = "/Start";
Обычно это дает мне все предметы, путь которых начинается с "/ Start"
Чтобы получить элементы для section1, я искал бы свой индекс, используя:
string startPath = "/Start/Section1/Events";
Обычно это дает мне все элементы, путь которых начинается с "/ Start / Section1 / Events"
Я реализовал это решение для новостей, и оно отлично работает. Для событий событий это не так.
Когда я ищу свой индекс, он не возвращает хитов. Проблема в том, что последние три имени папки являются числовыми.
Когда я переименовываю папки (например, 2011, 12, 25) в текст (две тысячи двенадцать двадцать пять), он возвращает хиты.
Как мне получить мой индекс, чтобы он возвращал результаты, сохраняя числовые имена папок?