2011-11-11 24 views
6

Tôi đang sử dụng django-haystack để tìm kiếm trên trang web của mình. Vấn đề của tôi là, tôi muốn có kết quả tìm kiếm ở trên nếu cụm từ tìm kiếm được tìm thấy trong một trường cụ thể. Giả sử tôi tìm kiếm các mục nhập blog, sau đó tôi muốn hiển thị các kết quả đó ở trên cùng, nơi cụm từ tìm kiếm được tìm thấy trong trường tiêu đề.Django haystack: Tăng cường kết quả tìm kiếm nếu searchterm xuất hiện trong một trường cụ thể

Tôi đã đọc tài liệu haystack về tăng cường trường nhưng tôi không hiểu cách hoạt động của nó.

Trả lời

4

Bạn có thể:

Sửa đổi tệp chỉ mục tìm kiếm của bạn, ví dụ:

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

Chú ý: Như đã chỉ ra trong các ý kiến ​​dưới đây sẽ chỉ đẩy mạnh tiêu đề dài không lĩnh vực này, sử dụng ở trên.

hoặc bạn có thể chuyển tăng lên SearchQuerySet của bạn, ví dụ: trong tệp url haystack của bạn.

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

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

Xin chào một lần nữa, Cảm ơn bạn đã phản hồi nhanh! Tôi biết hai biến thể này từ tài liệu và biến thể đầu tiên trông thú vị nhưng tôi có phải làm gì khác để làm cho nó hoạt động không? Tôi đã thử nó nhưng nó dường như không thay đổi gì cả ... Biến thể thứ hai không giúp tôi nhiều bởi vì nó chỉ tăng searchterm không phải là một lĩnh vực, ít nhất đó là cách tôi hiểu nó. – scherlock

+0

Bạn đang sử dụng chương trình phụ trợ tìm kiếm nào? – JamesO

+0

Tôi đã thử whoosh và solr – scherlock

Các vấn đề liên quan