Metadata-Version: 2.1
Name: invenio-indexer
Version: 3.0.0
Summary: "Record indexer for Invenio."
Home-page: https://github.com/inveniosoftware/invenio-indexer
Author: CERN
Author-email: info@inveniosoftware.org
License: MIT
Keywords: invenio search indexing
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Requires-Python: >=3.7
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: invenio-db<3.0.0,>=2.0.0
Requires-Dist: invenio-pidstore<3.0.0,>=2.0.0
Requires-Dist: invenio-records<4.0.0,>=3.0.0
Requires-Dist: pytz>=2016.4
Provides-Extra: tests
Requires-Dist: pytest-black-ng>=0.4.0; extra == "tests"
Requires-Dist: attrs>=17.4.0; extra == "tests"
Requires-Dist: pytest-invenio<4.0.0,>=3.0.0; extra == "tests"
Requires-Dist: redis>=3.4.0; extra == "tests"
Requires-Dist: sphinx>=4.5; extra == "tests"
Provides-Extra: elasticsearch7
Requires-Dist: elasticsearch<7.14.0,>=7.5.0; extra == "elasticsearch7"
Requires-Dist: invenio-search[elasticsearch7]<4.0.0,>=3.0.0; extra == "elasticsearch7"
Provides-Extra: opensearch1
Requires-Dist: invenio-search[opensearch1]<4.0.0,>=3.0.0; extra == "opensearch1"
Provides-Extra: opensearch2
Requires-Dist: invenio-search[opensearch2]<4.0.0,>=3.0.0; extra == "opensearch2"
Provides-Extra: docs

..
    This file is part of Invenio.
    Copyright (C) 2016-2018 CERN.

    Invenio is free software; you can redistribute it and/or modify it
    under the terms of the MIT License; see LICENSE file for more details.

=================
 Invenio-Indexer
=================

.. image:: https://img.shields.io/github/license/inveniosoftware/invenio-indexer.svg
        :target: https://github.com/inveniosoftware/invenio-indexer/blob/master/LICENSE

.. image:: https://github.com/inveniosoftware/invenio-indexer/workflows/CI/badge.svg
        :target: https://github.com/inveniosoftware/invenio-indexer/actions?query=workflow%3ACI

.. image:: https://img.shields.io/coveralls/inveniosoftware/invenio-indexer.svg
        :target: https://coveralls.io/r/inveniosoftware/invenio-indexer

.. image:: https://img.shields.io/pypi/v/invenio-indexer.svg
        :target: https://pypi.org/pypi/invenio-indexer


Record indexer for Invenio.

Further documentation is available on
https://invenio-indexer.readthedocs.io/

..
    This file is part of Invenio.
    Copyright (C) 2016-2024 CERN.
    Copyright (C) 2024 Graz University of Technology.

    Invenio is free software; you can redistribute it and/or modify it
    under the terms of the MIT License; see LICENSE file for more details.

Changes
=======

Version 3.0.0 (release 2024-11-29)

- setup: bump major dependencies

Version 2.4.0 (released 2024-10-28)
- config: remove INDEXER_DEFAULT_INDEX default value
- cli: run command accepts a new parameter 'chunk_size'
- ci: remove docker-compose line

Version 2.3.0 (released 2024-03-04)

- indexer: Allow the definition of indices in index_templates, instead of mappings

Version 2.2.1 (released 2023-09-28)

- bulk: make configurable the number of records to be bulk indexed per task

Version 2.2.0 (released 2023-05-25)

- cli: add queue selection options
- tests: remove redis as message backend

Version 2.1.2 (released 2023-05-05)

- Allow passing message queue producer publish arguments via the ``RecordIndexer``
  constructor and the ``INDEXER_MQ_PUBLISH_KWARGS`` config.

Version 2.1.1 (released 2022-10-07)

- Change `schema_to_index` to return only the index and not a tuple with index and
  doc type.

Version 2.1.0 (released 2022-10-03)

- Add support to OpenSearch v2
- Remove `doc_type` param
- Change `record_to_index` to return only the index and not a tuple with index and
  doc type.
- Remove the config var `INDEXER_DEFAULT_DOC_TYPE`

Version 2.0.1 (released 2022-09-26)

- Bump upper pin of invenio-records

Version 2.0.0 (released 2022-09-23)

- Integrate invenio-search v2, add support to OpenSearch
- Require Elasticsearch >= 7.5
- Remove old versions of Elasticsearch mappings
- Breaking: rename kwarg param `es_bulk_kwargs` to `search_bulk_kwargs`

Version 1.2.7 (released 2022-05-17)

- Add exists method to RecordIndexer API class.

Version 1.2.6 (released 2022-05-13)

- Add refresh method to RecordIndexer API class.

Version 1.2.5 (released 2022-05-05)

- Add a config to defined the max number of concurrent consumers
  when bulk indexing.
- Allows to retrieve all registered indexers.

Version 1.2.4 (released 2022-04-26)

- Aligns with best practice from Kombu that producers should also declare
  queues.

Version 1.2.3 (released 2022-04-06)

- Add indexer registry and use it in celery tasks.

Version 1.2.2 (released 2022-03-30)

- Add support for Click v8.1+ and Flask v2.1+.

Version 1.2.1 (released 2021-03-05)

- Remove pytest runner from setup dependencies

Version 1.2.0 (released 2020-09-16)

- Changes delete requests to optimistic concurrency control by providing the
  the version and version_type in delete requests. The previous behavior can
  restored by calling
  ``RecordIndexer().delete(record, version=None, version_type=None)`` instead.

- Adds support for using new-style record dumping controlled via the
  ``Record.enable_jsonref`` flag.

Version 1.1.2 (released 2020-04-28)

- Introduces ``RecordIndexer.record_cls`` for customizing the record class.
- Removes Python 2 support.

Version 1.1.1 (released 2019-11-21)

- Fix bulk action parameters compatibility for Elasticsearch v7.

Version 1.1.0 (released 2019-07-19)

- Add support for Elasticsearch v7.
- Integrate index prefixing.
- Add ``before_record_index.dynamic_connect()`` signal utility for more
  flexible indexer receivers.
- Add ``schema_to_index`` utility from ``invenio-search`` (will be removed in
  next minor version of ``invenio-search``).

Version 1.0.2 (released 2019-05-27)

- Allow Elasticsearch indexing arguments to be modified by subscribing to
  ``before_record_index`` signal.

Version 1.0.1 (released 2018-10-11)

- Allow forwarding arguments from ``RecordIndexer.process_bulk_queue`` to
  ``elasticsearch.helpers.bulk`` calls via the ``es_bulk_kwargs`` parameter.

Version 1.0.0 (released 2018-03-23)

- Initial public release.
