У меня есть несколько моделей, для которых мы уже создали поисковые индексы.Теперь у меня есть страница, на которой я хочу искать только в двух моделях Haystack: Manuscript и Page.Я не очень понимаю документацию из Хейстек.На данный момент запрос все еще выполняется по всем моделям, которые были проиндексированы.Как мне настроить views.py и index.py для него?Оценка заранее.
индексы поиска для Рукописи и Страницы:
class PageIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
uniqueID = indexes.CharField(model_attr='id_tei')
manuscript = indexes.CharField(model_attr='Manuscript_id', null=True, faceted=True) #this isn't in the database...??
fulltext = indexes.CharField(model_attr='fulltext')
modeltype = indexes.CharField(model_attr='get_type', null=True)
def get_model(self):
return Page
def get_type(self):
return 'Page'
class ManuscriptIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
uniqueID = indexes.CharField(model_attr='id_tei')
title = indexes.CharField(model_attr='title', null=True)
person_id = indexes.CharField(model_attr='person_id', null=True, faceted=True)
date = indexes.CharField(model_attr='date', null=True, faceted=True)
type_of_Manuscript = indexes.CharField(model_attr='type_of_Manuscript', null=True, faceted=True)
call_no = indexes.CharField(model_attr='call_no', null=True)
modeltype = indexes.CharField(model_attr='get_type', null=True)
def get_model(self):
return Manuscript
def get_type(self):
return 'Manuscript'
views.py для страницы поиска:
def search(request):
if search:
clean_query = SearchQuerySet().query.clean(user_query)
sqs = SearchQuerySet().models(Page, Manuscript).filter(SQ(content=clean_query))
return render(request, 'search/search.html')
urls.py:
urlpatterns = [
...
path('search/',include('haystack.urls')),
...
]