Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh, **Xapian搜索引擎它是一个可插拔的后端(很像Django的数据库层),所以几乎你所有写的代码都可以在不同搜索引擎之间便捷切换
| pip install django-haystack |
跟大多数Django的应用一样,你应该在你的设置文件(通常是settings.py
)添加Haystack到INSTALLED_APPS
. 示例:
| INSTALLED_APPS = [ |
| 'django.contrib.admin', |
| 'django.contrib.auth', |
| 'django.contrib.contenttypes', |
| 'django.contrib.sessions', |
| 'django.contrib.sites', |
| |
| |
| 'haystack', |
| |
| |
| 'blog', |
| ] |
在你的settings.py
中,你需要添加一个设置来指示站点配置文件正在使用的后端,以及其它的后端设置。 HAYSTACK——CONNECTIONS
是必需的设置,并且应该至少是以下的一种:
| HAYSTACK_CONNECTIONS = { |
| 'default': { |
| 'ENGINE': 'haystack.backends.solr_backend.SolrEngine', |
| 'URL': 'http://127.0.0.1:8983/solr' |
| |
| |
| }, |
| } |
| HAYSTACK_CONNECTIONS = { |
| 'default': { |
| 'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine', |
| 'URL': 'http://127.0.0.1:9200/', |
| 'INDEX_NAME': 'haystack', |
| }, |
| } |
| |
| import os |
| HAYSTACK_CONNECTIONS = { |
| 'default': { |
| 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', |
| 'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'), |
| }, |
| } |
| |
| |
| import os |
| HAYSTACK_CONNECTIONS = { |
| 'default': { |
| 'ENGINE': 'xapian_backend.XapianEngine', |
| 'PATH': os.path.join(os.path.dirname(__file__), 'xapian_index'), |
| }, |
| } |