2012-01-26 3 views
5

Нам необходимо предоставить параметры поиска для пользователей, чтобы найти контент на основе определенных значений полей.Расширение поиска и индексации орков

Мы разрабатываем модуль учебного курса для клиента, но стандартный поиск ищет текст в любом индексированном поле. Мы хотим разрешить пользователям находить курсы, основанные на поиске по определенным полям (т. Е. Тип курса, местоположение, цена, дата).

Мы расширили поиск, чтобы проверять конкретные поля, но не можем определить, как получить параметры URL, переданные формой поиска, как GET.

Где находится параметр Orchard для URL-адресов?

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

+0

Вы хотите, чтобы вы искали поиск типа 'Поиск местоположения = xxx' ?? Потому что, когда вы делаете поля, вы можете выбрать, индексируются они или нет. Только я не знаю, как вы укажете поиск в определенной области. – gideon

+0

Привет @gideon. Правильно, мы хотим, чтобы можно было отделить отдельные поля, поэтому URL-адрес поиска может быть ** search? Location = Ohio & Type = Cooking **, но мы не хотим, чтобы курсы кулинарии, которые просто _mention_ Ohio в их описание курса (например, «у нас также есть школа в Огайо»), мы хотим, чтобы те, у кого есть свое местоположение, были установлены ** Ohio **. – e64

+0

Возможно, вы можете проверить http://orchardgallery.codeplex.com/, у сайта есть поиск по категориям, похожим на то, что вы ищете (http://gallery.orchardproject.net/List/Modules) – gideon

ответ

1

Я бы посоветовал вам скопировать часть модуля поиска, в частности контроллер и представление, а затем изменить его в соответствии с вашими конкретными потребностями. Я вижу, что вы на самом деле изменяете исходный модуль, но это может быть проблемой в долгосрочной перспективе, например, если мы начнем обновлять модуль, вы можете либо потерять изменения, либо повторно применить их к базе кода. В итоге вы будете нацелены на модуль MySiteName.Search. Кроме того, вы можете добавлять настраиваемые маршруты, настраиваемые параметры.

С другой стороны, API поиска действительно эффективен, и вы даже можете использовать его для фасетного поиска или поиска по унаследованным таксономическим терминам, тегам, полному тексту, диапазонам, ... Наличие собственного кода контроллера позволит вам используйте все эти функции легко.

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