Configuring Indices

Algolia and Meilisearch both provide admin interfaces to configure an index and its searchable properties. There is no need for Dexter to try to replicate these administration features in the ExpressionEngine control panel. You can use the native interface of your chosen search provider to define which properties/fields are searchable, filterable, faceted, etc. It is easiest to do this after 1 or more entries are indexed in either provider. When Dexter sends the JSON object to either provider it automatically creates documents in an index that map to that JSON object.

BoldMinded can not offer support on how to configure indexes or how to create custom pipelines. For guidance on pipelines, refer to the the `Pipelines` directory in Dexter for examples or the accompanying dexter_pipelines add-on.

Algolia and Meilisearch both have intuitive interfaces to manage index settings in their hosted accounts. They both also let you export and import settings via a .json file. Dexter will let you export the settings, save them to your system/user/config directory for version control, and re-import them after making changes.

This is an example of the Meilisearch settings file. Save this file to your user/config/meilisearch directory manually, or use the export option to get your starting point. Even if you manage the settings through the account interfaces, we suggest exporting and saving a copy of the settings locally to keep in version control.

{
    "displayedAttributes": [
        "*"
    ],
    "searchableAttributes": [
        "*"
    ],
    "filterableAttributes": [
        "status",
        "entry_date"
    ],
    "sortableAttributes": [],
    "rankingRules": [
        "words",
        "typo",
        "proximity",
        "attribute",
        "sort",
        "exactness"
    ],
    "stopWords": [],
    "nonSeparatorTokens": [],
    "separatorTokens": [],
    "dictionary": [],
    "synonyms": [],
    "distinctAttribute": "",
    "proximityPrecision": "byWord",
    "typoTolerance": {
        "enabled": true,
        "minWordSizeForTypos": {
            "oneTypo": 5,
            "twoTypos": 9
        },
        "disableOnWords": [],
        "disableOnAttributes": []
    },
    "faceting": {
        "maxValuesPerFacet": 100,
        "sortFacetValuesBy": {
            "*": "alpha"
        }
    },
    "pagination": {
        "maxTotalHits": 1000
    },
    "embedders": [],
    "searchCutoffMs": null,
    "localizedAttributes": [],
    "facetSearch": true,
    "prefixSearch": "indexingTime"
}

Last updated

Was this helpful?