This project is not covered by Drupal’s security advisory policy.

This module provides an Azure search service backend for the Search API module.
The backend uses Azure search service servers for indexing and searching content. It has great performance, is suitable even for use on large commercial websites.

Configuration

  • Api Key
  • Azure search host

You can find this data in the azure portal search service settings
NOTICE: Index name must start and end with alphanumeric characters and contain only lowercase letters, digits or dashes.
WARNING: Index name used in the URL to select the target index, if it`s renamed you would have an error, "index does not exist" or wrong data.

Custom data types

  1. Provide data type definition in your_module/src/Plugin/search_api/data_type
    Use azure_search\Plugin\search_api\data_type\StringCollectionDataType as example
  2. Provide views filter class in your_module/src/Plugin/views/filter
    Use any of Drupal\views\Plugin\views\filter as example
  3. Provide your custom filter mapping in your_module/your_module.module
        /**
         * Implements hook_search_api_views_handler_mapping_alter().
         */
        function your_module_search_api_views_handler_mapping_alter(&$mapping) {
          $mapping['your_custom_datatype_id'] = [
            'argument' => [
              'id' => 'search_api',
            ],
            'filter' => [
              'id' => 'your_custom_views_filter',
            ],
            'sort' => [
              'id' => 'search_api',
            ],
          ];
        }
        

known issues:

  • Adding a field to the existing index which has been in use. It shows an error "Field 'field name' is NOT defined on the servers side, please save your changes".
    How to solve:
    After fields added or removed just click "Clear all indexed data", this will remove a current index and creates a new one with a correct structure. Please note that you will lose all indexed data on the server

Debug functionality:
You can get a search post object in the JSON format at recent log message by activating "Add a raw query to the log" in the server settings form

Project information

Releases