Namespace conflict resolution for move to standalone module

See the 2.0.x-dev release notes here: https://www.drupal.org/project/ai_search/releases/2.0.x-dev

Changes VDB Providers VDB Provider module maintainers must make

  1. VDB Providers should depend on https://www.drupal.org/project/ai_search instead which will require AI core 2.0.x. So:

    "require": {
    ...
    "drupal/ai_search": "^2.0",
    ...
    },

    And in modulename.info.yml:

    dependencies:
    - ...
    - ai_search:ai_search (^2.0)
    - ...
  2. AiVdbProviderInterface.php has a new method for support for Grouping in the vector database when a search request wants single entities returned rather than chunks for improved performance. If your VDB Provider uses AiVdbProviderClientBase.php, no change is needed. See [#3526390].
  3. If you use Milvus already and want to take advantage of the Grouping, you will need to fully drop your Collection (Milvus does not support modifications to the collection schema). It will be auto-recreated by AI Search if you resave your Search API Server, after which you can reindex your content into it. This essentially creates a new drupal_entity_id field at the top level (previously its only stored in the meta data field. The Grouping feature checks (and caches) if the new field exists otherwise carries on as it used to no harm.
  4. SearchApiAiSearchBackend now sets $query->setOption('search_api_ai_excluded_entity_ids') to help with recursive retrieval scenarios. If your VDB Provider can support that, check the $query if that is set and add it as a filter to your vector search to improve performance. See [#3526390].
  5. AiVdbProviderClientBase constructor arguments have changed, removing key.repository and event_dispatcher services. They should be added back in to your specific provider if you need them (e.g. see Milvus and Pinecone VDB Providers). See [#3539214].
  6. SearchApiAiVdbProviderBase extends AiVdbProviderClientBase for VDB Providers that want to use AI Search's Search API integration. Its arguments have similarly changed, so if you override the constructor your VDB Provider will need to be updated
  7. If you manually create EmbeddingsInput in any custom or contrib module, consider using the new optional cacheability option from [#3552522]. For user entered content where the content may be repeated, it avoids extra embeddings calls and therefore can save money. E.g. useful for hybrid search where a user enters the same keywords (or in fact doesn't change keywords) but updates exposed filters. Comparatively for indexing, caching is probably not desired as the embeddings are likely of unique content rather than repeated content.

Changes VDB Providers VDB Provider module maintainers should consider

  1. ::getConfig() method is now optional for VDB Provider Plugins. The base class now just calls ::isSetup(). It has therefore been removed from the interface. See [#3539212].

General new features

  1. Searches can be done by pre-supplied vector input. Useful e.g. for similarity search where you want to find nodes similar to an already vectorised node. See [#3489566].
VCS Label
2.0.0-alpha1
Release type
Short description
Initial alpha release of AI Search, subject to further changes before stable. Requires AI Core 2.0.x
Packaged Git sha1
43a66277d277c4fa601c6ed58b41c8e17e3f4c9a
Release files