跳转到主要内容

与Plone集成的Elasticsearch

项目描述

collective.elasticsearch

PyPI PyPI - Python Version PyPI - Wheel PyPI - License PyPI - Status

PyPI - Plone Versions

Code analysis checks Tests Code Style

GitHub contributors GitHub Repo stars

简介

此软件包旨在索引 portal_catalog 索引的所有字段,并允许您删除 标题描述可搜索文本 索引,这可以显著提高性能和 RAM 使用率。

然后,只有在标题、描述和可搜索文本文本包含在查询中时才使用 ElasticSearch 查询。否则,将使用 plone 的默认目录。这是因为 Plone 的默认目录在正常查询上比使用 ElasticSearch 快。

安装 Elastic Search

有关安装 Elastic Search 的不同选项的全面文档,请阅读他们的文档

使用 Docker 的快速入门

docker run \
		-e "discovery.type=single-node" \
		-e "cluster.name=docker-cluster" \
		-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
		-p 9200:9200 \
		elasticsearch:7.7.0

测试安装

在您的 shell 中运行

curl https://127.0.0.1:9200/

您应该看到 Hudsucker 代理引用? "你知道,是为了搜索"

安装 collective.elasticsearch

首先,将 collective.elasticsearch 添加到您的包依赖项中,或者使用 pip(与您的 Plone 安装相同的)安装它

pip install collective.elasticsearch

重新启动 Plone,转到 控制面板,点击 插件,然后选择 Elastic Search

现在,转到 插件配置

  • 勾选“启用”
  • 点击“转换目录”
  • 点击“重建目录”

现在,您拥有一个极具可扩展性的现代搜索引擎。现在享受心灵的生活吧!

兼容性

  • Python 3
  • Plone 5.2 及以上版本
  • 与 Elastic Search 7.7.0 进行了测试

状态

除了 DateRecurringIndex 索引列类型外,对所有索引列类型的支持已完成。如果您在包含 DateRecurringIndex 列的查询中进行全文搜索,它将无法正常工作。

开发此软件包

创建虚拟环境和安装所有依赖项

make build

在后台启动 Plone

make start

运行测试

make tests

格式化代码库

make format

检查代码库

make lint

许可协议

该项目受 GPLv2 许可协议的许可。

变更日志

5.0.0 (2022-10-11)

  • master 分支重命名为 main @ericof

  • 当使用 Plone 6.0 时放弃对 Python 3.7 的支持 @ericof

  • 添加对 plone.restapi 和 Volto 的支持 @ericof

5.0.0a2 (2022-09-23)

  • 实现 IIndexQueueProcessor 支持 @ericof

  • 重构 ElasticSearchCatalog 方法到 ElasticSearchManager 对象 @ericof

  • 破坏性变更:删除 collective.elasticsearch.es @ericof

  • 破坏性变更:删除 collective.elasticsearch.hooks @ericof

  • 重构 moveObjectsByDelta 以减少对 ElasticSearch 的调用次数 @ericof

  • 重新索引操作更新在目录发送时仅发送更新的索引到 ElasticSearch @ericof

  • 删除 collective.celery 支持(因为它尚未与 Python-3 兼容)@ericof

5.0.0a1 (2022-09-14)

  • 重构 hook.index_batch 以减少对 Elastic Search 的调用次数 @ericof

  • 实现 plone/code-analysis-action @ericof

  • 添加对 Plone 6.0 的支持 @ericof

  • 支持 Python 3.7、3.8、3.9 和 3.10 @ericof

  • 放弃对 Plone 版本 4.3、5.0 和 5.1 的支持 @ericof、@andreclimaco

  • 放弃对 Python 2.7 的支持 @ericof、@andreclimaco

4.0.0 (2021-04-28)

  • 破坏性变更:为 ES 7.x 进行更改 @bduncan137

  • 放慢测试速度以允许它们正确完成 @bduncan137

3.0.5 (2021-04-28)

  • 问题 #76 在 5.1+ 中,我们希望修补 _unindexObject 而不是 unindexObject @ewohnlich

  • 如果 ES 批量索引操作失败,则添加显式错误日志 @nazrulworld

  • 修复在内容已移动时提交钩子错误 @instification

3.0.4 (2019-08-21)

  • 问题 #63 现在确保了对于 python2 和 python3 的 unicode 值的处理。@nazrulworld

  • 现在可以通过除了 标题描述可搜索文本 索引之外的其他索引进行搜索。@nazrulworld

3.0.3 (2019-03-12)

  • 添加缺失的 import logger @nazrulworld

3.0.2 (2019-01-31)

  • 修复 Zope DateTime 转换以处理 datetime.date 类型 @ewohnlich

3.0.1 (2019-01-28)

  • 修复 sortable_title 搜索问题 @ewohnlich

3.0.0 (2019-01-28)

  • 修复日期查询以与 min:max 以及 minmax 一起工作 @vangheem

  • 修复排序顺序解析和实现 @vangheem

  • 正确处理缺少 es_only_indexes 的升级 @vangheem

  • 将 IReindexActive 添加到请求中,作为其他代码的标志 @lucid-0

2.0.2 (2018-11-27)

  • Python 3 支持 @vangheem

  • 支持 ES 6 @lucid-0

  • 修复导致 @@elastic-controlpanel 上的“服务器状态”为空的错误。@fulv

2.0.1 (2018-01-05)

  • 防止在查询值意外为 None 时发生关键错误。@thomasdesvenain

  • 代码清理:可读性、pep8、80 列、zca 装饰器。@jensens

  • 修复日期标准:'minmax' 而不是 'min:max' + 字符串到日期转换 @ebrehault

2.0.0a6 (2017-03-29)

  • 优雅地处理设置界面中的升级,以免在升级时中断用户。@vangheem

2.0.0a5 (2017-03-29)

  • 由于可以启动没有权限的对象的重新索引或索引,所以现在以管理员身份运行索引。@vangheem

2.0.0a4 (2017-03-27)

  • 已发布

2.0.0a3 (2017-03-27)

  • 添加一个方法来设置索引创建期间请求的正文。@Gagaro

  • 修复了带有负索引的懒惰列表中的 get brain 的问题。@thomasdesvenain

  • 强制使用 es 搜索的索引列表是可配置的。@thomasdesvenain

  • 在 Plone 4.3 下工作。@thomasdesvenain

  • 与 archetypes 内容一起工作。@thomasdesvenain

2.0.0a2 (2016-07-19)

  • 我们可以将自定义结果工厂和自定义查询参数传递给 IElasticSearchCatalog.search() 方法。因此,我们可以将其用作自定义需求的公共接口。@thomasdesvenain

  • 在重新索引之前防止取消索引,如果 uid 未更改,例如在重命名时。使用集合作为要删除的列表。@thomasdesvenain

  • 修复从 Plone 中删除标题和描述索引时的索引问题 @vangheem

2.0.0a1 (2016-06-06)

  • 升级到 elasticsearch 2.x @vangheem

1.0.1a4 (2016-05-22)

  • 提供更好的搜索查询 @vangheem

1.0.1a3 (2016-03-22)

  • 确保正确获取别名定义 @vangheem

1.0.1a2 (2016-03-18)

  • 将索引作为别名创建,这样您可以在不中断服务的情况下潜在地工作在现有的别名上 @vangheem

1.0.1a1 (2016-02-25)

  • 将默认排序更改为降序。 问题 #12 @neilferreira

1.0.0a1 (2016-02-25)

  • 初始发布

项目详情


下载文件

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

源分布

collective.elasticsearch-5.0.0.tar.gz (51.5 kB 查看散列值)

上传时间

构建分布

collective.elasticsearch-5.0.0-py3-none-any.whl (46.3 kB 查看散列值)

上传时间 Python 3

支持者