支持Django的ElasticSearch客户端。
django-gum的Python项目详细描述
Gum是一个Django应用程序,用于将ElasticSearch 1.x与Django集成。你可以在 https://django-gum.readthedocs.org。
快速启动
1使用pip安装:
pip install django-gum
2将“gum”添加到已安装的应用程序设置中,如下所示:
INSTALLED_APPS += ('gum',)
3将ElasticSearch配置添加到如下设置:
GUM_ELASTICSEARCH_URLS = ["http://127.0.0.1:9200/"] GUM_ELASTICSEARCH_INDEX = ".gum-tests"
可用配置变量列表:
- GUM_DEBUG(布尔值)
- GUM_USE_CELERY(布尔值)
- GUM_ELASTICSEARCH_URLS(列表)
- GUM_ELASTICSEARCH_INDEX(字符串)
4在应用程序中创建index.py,内容如下:
from gum.indexer import MappingType, indexer class PostMappingType(MappingType): def document(self, instance): tags_text = " ".join(map(lambda x: x.label, instance.tags.all())) return { "title": instance.title, "content": instance.content, "text": "{} {} {}".format(instance.title, instance.content, tags_text) } def mapping(self): return { "properties": { "title": { "type": "string", "store": True, }, "content": { "type": "string", "store": True, }, "text": { "type": "string", "store": True, } } } indexer.register(Post, PostMappingType)
5更新弹性搜索索引:
./manage.py gum --update-index
您可以指定要索引的模型:
./manage.py gum --update-index blog.Post
搜索
可以使用elasticsearch模型执行elasticsearch搜索(访问search方法) 属性:
response = Post.elasticsearch.search(body={ "query": { "match_all": {} } })