2015-09-12 2 views
0

я использую эти Друпал модулиDrupal диапазон дат индексации с помощью Apache Solr

search_api 
search_api_solr 
date_range_formatter 
views 

и в самом деле много других модулей, чтобы получить мой проект Solr/Drupal собирается индекс ~ 100000 узлов контента.

Настройка работает отлично, НО мне нужно получить результаты поиска от Solr для поля диапазона дат, и это то, где я застрял.

Как-то я застрял в установке правильного оператора «между» и «не между» и используя «< =» или «> =» вызывает здесь проблемы.

Я не могу получить мой Solr-запрос как

field[1 TO *] AND field[* TO 10] 

работать.

Один тип контента может иметь несколько диапазонов дат, доступных для поиска.

Пользователь может найти дату начала и дату окончания. Daterange должен совпадать внутри каждого отдельного интерфейса типа индексированного объекта.

Скажем, действует с:

2015-10-01 to 2015-10-10 
2015-11-01 to 2015-11-10 
... 

и так далее.

Чтобы заставить меня идти и сортировать проблемы, правильный путь мне нужно знать, первым:

Что является лучшей практикой для хранения диапазона дат внутри Drupal индексировать на стороне Solr? Является ли диапазон дат хорошим способом или будет лучше хранить диапазон со значением для каждого дня в отдельности, как:

2015-10-01 
2015-10-02 
2015-10-03 
... 

Что является лучшим для Solr индексировать диапазон дат?

Какой тип поля внутри Drupal вы предлагаете хранить значения внутри типа сущности, чтобы отправить его на Drupal?

Я знаю, что я не первый борюсь с этим. Подробную информацию можно найти здесь:

https://www.drupal.org/node/1783746

но onfortunately ни один из этих патчей не было ошибок в моей установке. Я попробовал все, чтобы добиться этого. Теперь я ищу любые советы, подведения итогов или мысли, которые могут быть полезны для отслеживания моих последних бит ошибок.

Любые советы или идеи действительно оценены.

Спасибо.

ответ

0

Это не пошаговое решение.Я просто хочу, чтобы дать вам представление о том, как адаптировать это к вашему проекту и по-прежнему остаться совместимым с search_api и search_api_solr:

Одним из возможных решений может быть для хранения и индекс даты из объекта в одном поле на дата по отдельности

2015-10-01 
2015-10-02 
2015-10-03 
... 

после этого использования

function mymodule_search_api_views_query_alter(
view &$view,SearchApiViewsQuery &$query) { 

... 
    } 
} 

, чтобы добавить недостающие условия запроса, как

AND field_name = 2015-10-01 (as timestamp) 
AND field_name = 2015-10-02 
AND field_name = 2015-10-03 

заботиться обо всех условиях.

Я надеюсь, что это полезно для тех, кто нуждается в аналогичном решении.

Смежные вопросы