安装Apache Solr:可以从https://lucene.apache.org/solr/下载最新版本的Apache Solr。解压后,通过命令行进入solr/bin文件夹并启动Solr服务器:./solr start
。可以使用./solr status
检查Solr是否正在运行。
安装Django和Django Haystack:可以使用pip安装。pip install django
和pip install django-haystack
Django项目中的Haystack设置和模型:在你的settings.py文件中添加以下设置:
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://127.0.0.1:8983/solr/',
'TIMEOUT': 60 * 5,
'INCLUDE_SPELLING': True,
},
}
INSTALLED_APPS = [
# ...
'haystack',
# ...
]
然后定义你的搜索模型,例如:
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.timezone import now
from haystack import indexes
@python_2_unicode_compatible
class Note(models.Model):
title = models.CharField(max_length=100)
content = models.TextField(blank=True)
created = models.DateTimeField(default=now)
def __str__(self):
return self.title
class NoteIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
title = indexes.CharField(model_attr='title')
def get_model(self):
return Note
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.all()
配置Solr模式和schema.xml:Solr需要知道你的模型如何存储在索引中。Django Haystack可以自动生成Solr模式和schema.xml文件。运行以下命令生成这些文件:python manage.py build_solr_schema
创建Solr核和索引:先创建一个名为“notes”的Solr核,运行以下命令:./solr create -c notes
然后在Solr Web界面上创建一个名为“notes”的索引。Solr Web界面默认位于http://localhost:8983/solr/。