Работа со многими календарями и хороший способ их хранения / запроса - PullRequest
1 голос
/ 29 апреля 2011

Сначала какая-то модель: у нас есть реклама с календарем. Каждая дата имеет логическое значение (больше похожее на троичное поле, но это не меняет проблему) для проверки несоответствия объявления в эту дату (да, нет, неизвестно). Я хочу создать индекс solr, чтобы можно было искать объявление как документ (эта часть выполнена) и добавить некоторые аспекты или запросы о несоответствии.

т.е.: соответствие объявлений ... плюс несоответствие между А и В., а затем solr верните мне список документов Ad, в которых есть календарь с несоответствующим (или неизвестным ...) на эту дату.

Как я могу описать индекс Solr, чтобы можно было искать объявления с такими ограничениями, если это возможно?

Любая помощь очень ценится и спасибо за ваше время. Извините за мой плохой английский и любой обзор грамматики было бы хорошо!

1 Ответ

1 голос
/ 30 апреля 2011

Достижение результатов поиска в нужной форме сначала требует правильной структуры схемы.Исходя из вашего описания, у вас есть три поля: «объявление», «дата» и «рассогласованность».Однако вы хотите, чтобы «дата» и «несоответствие» были связаны друг с другом.Структурирование индекса как отдельных полей нежелательно.

В этом случае рассмотрим следующую схему:

<fields>
  <field name="ad" type="string" indexed="true" stored="true" required="true" />
  <field name="disp-yes" type="date" indexed="true" stored="true" required="true" multiValued="true"/>
  <field name="disp-no" type="date" indexed="true" stored="true" required="true" multiValued="true"/>
  <field name="disp-unknown" type="date" indexed="true" stored="true" required="true" multiValued="true"/>
</fields>

(предположения сделаны для атрибутов индексированного, сохраненного и типа данных.)

В этой схеме вы можете индексировать каждое объявление и добавлять значения дат в определения полей "disp- *".При запросе вы можете структурировать поиски, чтобы получать объявления на основе несоответствия, а также применять фасетные запросы.

Дополнительным преимуществом структурирования полей disp- * как типов даты является поддержка запросов диапазона, которая применяется как к поискурезультаты, а также аспекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...