2011-11-11 14 views
6

Używam django-haystack do wyszukiwania w mojej witrynie. Mój problem polega na tym, że chciałbym, aby wyniki wyszukiwania znajdowały się na górze, gdyby wyszukiwane hasło zostało znalezione w określonym polu. Powiedzmy, że szukam wpisów w blogu, a następnie chciałbym pokazać te wyniki na górze, gdzie wyszukiwane hasło zostało znalezione w polu tytułu.Django haystack: Zwiększanie wyników wyszukiwania, jeśli wyszukiwarka pojawia się w określonym polu

Przeczytałem dokumentację dotyczącą stogu siana dotyczącą zwiększania pola, ale nie rozumiem, jak to powinno działać.

Odpowiedz

4

Możesz:

Zmień plik indeksu wyszukiwania, np.

class BlogEntryIndex(SearchIndex): 
    text = CharField(document=True, use_template=True) 
    title = CharField(model_attr='title', boost=1.125) 

UWAGA: Jak zauważył w komentarzach poniżej zwiększyłoby tylko nie tytułowy termin boiska, użyj powyższych.

czy można przekazać impuls do SearchQuerySet np w pliku adresy URL stogu siana.

sqs = SearchQuerySet().boost('title', 1.125) 

urlpatterns = patterns('haystack.views', 
    url(r'^$', SearchView(searchqueryset=sqs), name='haystack_search'), 
) 
+0

Witam ponownie, dzięki za szybką odpowiedź! Znam te dwa warianty z dokumentacji, a pierwszy wariant wygląda interesująco, ale czy muszę zrobić coś innego, żeby to zadziałało? Próbowałem już, ale wydaje się, że nic nie zmienia ... Drugi wariant nie pomaga mi zbytnio, ponieważ zwiększa tylko wyszukiwarkę, a nie pole, przynajmniej tak ją rozumiem. – scherlock

+0

Którego zaplecza wyszukiwania używasz? – JamesO

+0

Próbowałem whoosh i solr – scherlock

Powiązane problemy