django CMS的多语言Haystack索引扩展
项目描述
此软件包提供搜索索引,以方便Haystack 2与django CMS集成。
贡献
这是一个开源项目。我们很高兴收到您以问题单和拉取请求形式提供的反馈。在提交您的拉取请求之前,请查看我们的贡献指南。
我们对所有帮助创建和维护此软件包的贡献者表示感激。贡献者名单在贡献者部分列出。
使用方法
通过您选择的包管理器安装aldryn-search后,将aldryn_search添加到您的INSTALLED_APPS。如果您运行的是多语言CMS设置,您必须为使用的每种语言定义一个Haystack后端
HAYSTACK_CONNECTIONS = { 'en': { 'ENGINE': 'haystack.backends.solr_backend.SolrEngine', 'URL': 'http://my-solr-server/solr/my-site-en/', 'TIMEOUT': 60 * 5, 'INCLUDE_SPELLING': True, 'BATCH_SIZE': 100, }, 'fr': { 'ENGINE': 'haystack.backends.solr_backend.SolrEngine', 'URL': 'http://my-solr-server/solr/my-site-fr/', 'TIMEOUT': 60 * 5, 'INCLUDE_SPELLING': True, 'BATCH_SIZE': 100, }, }
为确保在搜索过程中使用正确的后端,请将 aldryn_search.router.LanguageRouter 添加到您的 HAYSTACK_ROUTERS 设置中。
HAYSTACK_ROUTERS = ['aldryn_search.router.LanguageRouter',]
在使用多种语言时,通常每种语言有一个搜索后端,在索引时,了解当前使用的语言很重要。这可以通过 ALDRYN_SEARCH_LANGUAGE_FROM_ALIAS 设置来实现,该设置可以是可调用的或指向一个字符串路径。
请注意,通常不建议在设置中导入内容,但是有时创建一个处理别名的函数似乎过于繁琐,例如
ALDRYN_SEARCH_LANGUAGE_FROM_ALIAS = lambda alias: alias.split('-')[-1]
上面的例子在多语言和多站点中使用时可以适用,所有后端都可以有语言后缀。
您还可以使用代码中其他地方定义的函数实现相同的效果
ALDRYN_SEARCH_LANGUAGE_FROM_ALIAS = "my_app.helpers.language_from_alias"
如果上述任何一项返回 None,则使用 settings.LANGUAGE_CODE。
默认情况下,此设置评估为一个函数,该函数检查别名是否在 settings.LANGUAGES 中,如果是,则使用别名作为语言。
有关完整的 Haystack 设置,请参阅他们的 文档。
有关更多文档,请参阅 文档文件夹。
与 django CMS 集成
aldryn-search 随附 django CMS 的 App Hook 和使用 Django 类视图的搜索视图。如果您想使用此应用程序钩子,可以将其子类化并自行注册,或将 ALDRYN_SEARCH_REGISTER_APPHOOK 设置为 True。
如果您想排除某些 CMS 插件索引,可以指定 ALDRYN_SEARCH_PLUGINS_EXCLUDE 设置,如下所示
ALDRYN_SEARCH_EXCLUDED_PLUGINS = [ "PluginA", "PluginB" ]
对于分页,aldryn-search 使用 aldryn_common.paginator.DiggPaginator。如果您想使用此内置分页,请确保安装 django-spurl,并将其添加到 INSTALLED_APPS。
分页
结果根据 ALDRYN_SEARCH_PAGINATION 设置进行分页(默认:10)。如果设置为 None,则禁用分页。
项目详情
aldryn-search-1.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2ebfbff5dfa7c49c554e0ae23b12bfd80962b5d1d72246061e389fa4c75e4511 |
|
MD5 | b36d164ba0b960897077a619fdbd9f22 |
|
BLAKE2b-256 | 1e314417ce018ebc17ac056a46c2afcd964eef12f8939c6cf2e5ecb2c2898bb4 |