PHPackages                             pimcore/advanced-object-search - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. pimcore/advanced-object-search

ActivePimcore-bundle

pimcore/advanced-object-search
==============================

v7.1.0(5mo ago)40216.0k—8.7%49[9 issues](https://github.com/pimcore/advanced-object-search/issues)[3 PRs](https://github.com/pimcore/advanced-object-search/pulls)proprietaryPHPPHP ~8.3.0 || ~8.4.0CI passing

Since Aug 16Pushed 2mo ago10 watchersCompare

[ Source](https://github.com/pimcore/advanced-object-search)[ Packagist](https://packagist.org/packages/pimcore/advanced-object-search)[ RSS](/packages/pimcore-advanced-object-search/feed)WikiDiscussions 7.x Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (104)Used By (0)

   title     Advanced Object Search

  Pimcore Advanced Object Search via OpenSearch or Elasticsearch
==============================================================

[](#pimcore-advanced-object-search-via-opensearch-or-elasticsearch)

Warning

This bundle won't be migrated to Pimcore Studio and therefore will be deprecated with 7.1.

Advanced Object Search bundle provides advanced object search in Pimcore backend powered by search index technology (OpenSearch or Elasticsearch).

Integration into Pimcore
------------------------

[](#integration-into-pimcore)

### Installation and Configuration

[](#installation-and-configuration)

Follow [Installation instructions](./doc/00_Installation.md).

#### Configure Search Client

[](#configure-search-client)

Setup search client configuration in your Symfony configuration files (e.g. `config.yaml`). See [OpenSearch Client Setup](./doc/04_Opensearch.md) or [Elasticsearch Client Setup](./doc/05_Elasticsearch.md) for more information.

#### Configure Advanced Object Search

[](#configure-advanced-object-search)

Before starting, setup at least following configuration in symfony configuration tree:

```
advanced_object_search:
    # Prefix for index names
    index_name_prefix: 'advanced_object_search_'
```

For further configuration options follow the docs and the inline description of the configuration tree.

#### Initial Indexing

[](#initial-indexing)

Call Pimcore command `advanced-object-search:update-mapping` for creating mappings and `advanced-object-search:re-index`for indexing data for the first time.

### GUI

[](#gui)

GUI for creating searches against search index with

- saving functionality
- sharing functionality

[![Screen](./doc/img/screen.jpg)](./doc/img/screen.jpg)

### Plugin Hooks

[](#plugin-hooks)

Following event listeners are called automatically

- `pimcore.dataobject.postUpdate` - data object is updated in search index, all child objects are added to update queue.
- `pimcore.dataobject.preDelete` - data object is deleted from search index.
- `pimcore.class.postUpdate` - search index mapping is updated or index recreated if necessary.

### Pimcore Console

[](#pimcore-console)

Functions in Pimcore console.

- `advanced-object-search:process-update-queue` --&gt; processes whole update queue of search index.
- `advanced-object-search:re-index` --&gt; Reindex all data objects of given class. Does not delete index first or resets update queue.
- `advanced-object-search:update-mapping` --&gt; Deletes and recreates mapping of given classes. Resets update queue for given class.

For details see documentation directly in Pimcore console.

### Pimcore Maintenance &amp; Symfony Messenger

[](#pimcore-maintenance--symfony-messenger)

By default, with every Pimcore maintenance call, 500 entries of update queue are processed. As an alternative, you also can activate symfony messenger to process the update queue. For that, just activate it as follows.

```
 advanced_object_search:
    messenger_queue_processing:
        activated: true
```

If activated, the processing is kicked off automatically with the `advancedobjectsearch_update_queue` maintenance task.

Messages are dispatched via `pimcore_index_queues` transport. So make sure, you have workers processing this transport when activating the messenger based queue processing.

API Methods
-----------

[](#api-methods)

### Create Mapping for data object classes

[](#create-mapping-for-data-object-classes)

Per data object class one index with one document type is created.

```
