Plone Add-on Gallery

collective.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

Introduction

This package aims to index all fields the portal_catalog indexes and allows you to delete the Title, Description and SearchableText indexes which can provide significant improvement to performance and RAM usage.

Then, ElasticSearch queries are ONLY used when Title, Description and SearchableText text are in the query. Otherwise, the plone's default catalog will be used. This is because Plone's default catalog is faster on normal queries than using ElasticSearch.

Install Elastic Search

For a comprehensive documentation about the different options of installing Elastic Search, please read their documentation.

A quick start, using Docker would be:

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

Test the installation

Run, on your shell:

curl http://localhost:9200/

And you should see the Hudsucker Proxy reference? "You Know, for Search"

Install collective.elasticsearch

First, add collective.elasticsearch to your package dependencies, or install it with pip (the same one used by your Plone installation):

pip install collective.elasticsearch

Restart Plone, and go to the Control Panel, click in Add-ons, and select Elastic Search.

Now, go to Add-on Configuration and:

You now have a insanely scalable modern search engine. Now live the life of the Mind!

Compatibility

State

Support for all index column types is done EXCEPT for the DateRecurringIndex index column type. If you are doing a full text search along with a query that contains a DateRecurringIndex column, it will not work.

Developing this package

Create the virtual enviroment and install all dependencies:

make build

Start Plone in foreground:

make start

Running tests

make tests

Formatting the codebase

make format

Linting the codebase

make lint

License

The project is licensed under the GPLv2.

Changelog

5.0.0 (2022-10-11)

5.0.0a2 (2022-09-23)

5.0.0a1 (2022-09-14)

4.0.0 (2021-04-28)

3.0.5 (2021-04-28)

3.0.4 (2019-08-21)

3.0.3 (2019-03-12)

3.0.2 (2019-01-31)

3.0.1 (2019-01-28)

3.0.0 (2019-01-28)

2.0.2 (2018-11-27)

2.0.1 (2018-01-05)

2.0.0a6 (2017-03-29)

2.0.0a5 (2017-03-29)

2.0.0a4 (2017-03-27)

2.0.0a3 (2017-03-27)

2.0.0a2 (2016-07-19)

2.0.0a1 (2016-06-06)

1.0.1a4 (2016-05-22)

1.0.1a3 (2016-03-22)

1.0.1a2 (2016-03-18)

1.0.1a1 (2016-02-25)

1.0.0a1 (2016-02-25)