search: remove whoosh, and add support for ES 8 & 9

This commit is contained in:
RhodeCode Admin 2025-06-02 13:50:04 +02:00
parent aa989aeadd
commit b6c2ac4521
7 changed files with 88 additions and 116 deletions

View file

@ -315,9 +315,7 @@ Enabling ElasticSearch
^^^^^^^^^^^^^^^^^^^^^^
ElasticSearch is available in EE edition only. It provides much scalable and more advanced
search capabilities. While Whoosh is fine for upto 1-2GB of data, beyond that amount it
starts slowing down, and can cause other problems.
New ElasticSearch 6 also provides much more advanced query language.
search capabilities. New ElasticSearch also provides much more advanced query language.
It allows advanced filtering by file paths, extensions, use OR statements, ranges etc.
Please check query language examples in the search field for some advanced query language usage.
@ -325,25 +323,15 @@ Please check query language examples in the search field for some advanced query
1. Open the :file:`rhodecode.ini` file for the instance you wish to edit. The
default location is
:file:`home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
2. Find the search configuration section:
.. code-block:: ini
###################################
## SEARCH INDEXING CONFIGURATION ##
###################################
search.module = rhodecode.lib.index.whoosh
search.location = %(here)s/data/index
and change it to:
2. Find the search configuration section and change it to:
.. code-block:: ini
search.module = rc_elasticsearch
search.location = http://localhost:9200
## specify Elastic Search version, 6 for latest or 2 for legacy
search.es_version = 6
search.location = http://elasticsearch:9200
## specify Elastic Search version, 8 for latest
search.es_version = 8
where ``search.location`` points to the ElasticSearch server
by default running on port 9200.
@ -352,8 +340,7 @@ Index invocation also needs change. Please provide --es-version= and
--engine-location= parameters to define ElasticSearch server location and it's version.
For example::
rhodecode-index --instace-name=enterprise-1 --es-version=6 --engine-location=http://localhost:9200
rhodecode-index --instance-name=enterprise-1 --es-version=8 --engine-location=http://elasticsearch:9200
.. _Whoosh: https://pypi.python.org/pypi/Whoosh/
.. _ElasticSearch 6: https://www.elastic.co/