跳转到主要内容

Haystack的Xapian后端

项目描述

GitHub Actions https://coveralls.io/repos/notanumber/xapian-haystack/badge.svg?branch=master&service=github PyPI version

Xapian-haystack是Django-Haystack的Xapian搜索引擎后端。感谢您查看。

有关Xapian的更多信息,请在此处找到。

特性

Xapian-Haystack提供了Haystack的所有标准特性

  • 权重

  • 分面搜索(日期、查询等)

  • 排序

  • 拼写建议

  • EdgeNGram和Ngram(用于自动完成)

限制

《Xapian-Haystack》不支持搜索操作 endswith

要求

  • Python 3+

  • Django 2.2+

  • Django-Haystack 2.8.0

  • Xapian 1.4+

安装

首先,在您的机器上安装Xapian,例如使用提供的脚本,install_xapian.sh。在激活虚拟环境后调用它来安装

source <path>/bin/activate
./install_xapian.sh <version>

<版本>必须 >=1.4.0。这大约需要10分钟。

最后,通过运行以下命令安装Xapian-Haystack

pip install xapian-haystack

配置

Haystack将Xapian配置为其他后端。您必须定义数据库的连接,这通常是通过到目录的路径来完成的,例如:

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'xapian_backend.XapianEngine',
        'PATH': os.path.join(os.path.dirname(__file__), 'xapian_index')
    },
}

后端有以下可选设置:

  • HAYSTACK_XAPIAN_LANGUAGE:词干化语言;默认为英语,可用语言列表可在此处找到:这里

  • HAYSTACK_XAPIAN_WEIGHTING_SCHEME:传递给权重方案BM25的参数元组。默认情况下,它使用Xapian推荐的相同参数;此设置允许您更改它们。

  • HAYSTACK_XAPIAN_FLAGS:用于解析AutoQueries的选项;默认为FLAG_PHRASE | FLAG_BOOLEAN | FLAG_LOVEHATE | FLAG_WILDCARD | FLAG_PURE_NOT。有关更多信息,请参阅这里

  • HAYSTACK_XAPIAN_STEMMING_STRATEGY:此选项允许您选择Xapian使用的词干化策略。可能的值是STEM_NONESTEM_SOMESTEM_ALLSTEM_ALL_Z,其中STEM_SOME是默认值。有关不同策略的更多信息,请参阅这里

  • XAPIAN_NGRAM_MIN_LENGTHXAPIAN_NGRAM_MAX_LENGTH:用于自定义配置ngram(短语)长度的选项。

  • HAYSTACK_XAPIAN_USE_LOCKFILE:在运行带有多个工作进程的管理命令时,使用锁文件防止数据库锁定错误。默认为True

测试

Xapian-Haystack有一个在GitHub Actions上持续部署的测试套件。文件.github/workflows/test.yml包含运行测试套件所需的步骤。

源代码

源代码可在github上找到。

致谢

Xapian-Haystack由Jorge C. Leitão维护;David Sauve是Xapian-Haystack的主要贡献者,Xapian-Haystack最初由Trapeze资助。 Claude Paroz是频繁的贡献者。ANtlord实现了对EdgeNgram和Ngram的支持。

许可证

Xapian-haystack是免费软件,根据GNU通用公共许可证v2授权,版权(c)2009,2010,2011,2012 David Sauve,2009,2010 Trapeze,2014 Jorge C. Leitão。它可以在LICENSE文件中指定的条款下重新分发。

问题、评论、关注

请随意在此打开问题或提交您的拉取请求。

您可以在django-haystack 邮件列表或irc #haystack上提问。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

xapian-haystack-3.1.0.tar.gz (37.9 kB 查看哈希值)

上传时间

由以下支持