跳转到主要内容

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 (23.8 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面