# settings.py ... HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.elasticsearch5_backend.Elasticsearch5SearchEngine', 'URL': 'http://localhost:9200/', 'INDEX_NAME': 'my_search_index', }, } # models.py from django.db import models from haystack import indexes class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() class ArticleIndex(indexes.SearchIndex, indexes.Indexable): text = indexes.CharField(document=True, use_template=True) title = indexes.CharField(model_attr='title') def get_model(self): return Article def index_queryset(self, using=None): return self.get_model().objects.all() # article_text.txt {{ object.title }} {{ object.content }} # views.py from haystack.query import SearchQuerySet from django.shortcuts import render def search(request): query = request.GET.get('q', '') articles = SearchQuerySet().filter(content=query) return render(request, 'search.html', {'articles': articles})


上一篇:
下一篇:
切换中文