2012-01-26 14 views
5

Musimy zapewnić opcje wyszukiwania dla użytkowników, aby znaleźć zawartość na podstawie określonych wartości pól.Rozszerzanie wyszukiwania i indeksowania sadu

Opracowujemy moduł kursu szkoleniowego dla klienta, ale standardowe wyszukiwanie wyszukuje tekst w dowolnym indeksowanym polu. Chcemy umożliwić użytkownikom wyszukiwanie kursów na podstawie wyszukiwań w odniesieniu do konkretnych pól (tj. Rodzaj kursu, Lokalizacja, Cena, Data).

Rozszerzyliśmy wyszukiwanie, aby sprawdzić konkretne pola, ale nie możemy ustalić, jak uzyskać parametry adresu URL przekazane przez formularz wyszukiwania jako GET.

Gdzie Orchard wprowadza parametry adresu URL?

Ponadto, czy czegoś brakuje, czy istnieje sposób, w jaki Orchard już to popiera, czego nie uświadomiliśmy sobie?

+0

Masz na myśli wyszukiwanie typu 'Wyszukaj lokalizację = xxx' ?? Bo kiedy tworzysz pola, możesz wybrać, czy są one indeksowane, czy nie. Tylko nie wiedziałbym, w jaki sposób określić wyszukiwanie w konkretnym polu. – gideon

+0

Witam @gideon, To prawda, chcemy mieć możliwość oddzielenia poszczególnych pól, więc adres URL wyszukiwania może być ** search? Location = Ohio & Type = Cooking **, ale nie chcemy żadnych kursów gotowania, które tylko _mention_ Ohio w ich opis kursu (np. "mamy też szkołę w Ohio"), chcemy, aby te, które konkretnie mają swoją lokalizację, były ustawione na ** Ohio **. – e64

+0

Może możesz sprawdzić http://orchardgallery.codeplex.com/ strona ma wyszukiwanie kategorii podobne do tego, czego szukasz (http://gallery.orchardproject.net/List/Modules) – gideon

Odpowiedz

1

Proponuję skopiować część modułu wyszukiwania, a konkretnie kontroler i widok, a następnie zmodyfikować go zgodnie ze swoimi potrzebami. Widzę, że faktycznie modyfikujesz oryginalny moduł, ale może to być problem na dłuższą metę, na przykład jeśli zaczniemy aktualizować moduł, możesz stracić zmiany lub musisz ponownie zastosować je do bazy kodu. Na koniec będziesz kierować na moduł MySiteName.Search. Możesz także dodawać niestandardowe trasy, niestandardowe ustawienia.

Na marginesie interfejs API wyszukiwarki jest naprawdę potężny i można go nawet używać do wyszukiwania fasetowego lub wyszukiwania dziedziczonych pojęć taksonomicznych, znaczników, pełnych tekstów, zakresów ... Posiadanie własnego kodu kontrolera pozwala wykorzystaj wszystkie te funkcje z łatwością.