This version is still in development and is not considered stable yet. For the latest stable version, please use Spring Data Meilisearch 0.12.0!

Repository Configuration

Spring Data Meilisearch repositories are enabled through @EnableMeilisearchRepositories or the XML namespace.

Repository bootstrap registers interfaces against a MeilisearchOperations bean. It does not create the client, template, or converter for you, and this module does not provide Spring Boot auto-configuration. The default operations bean name is meilisearchTemplate; use meilisearchTemplateRef to select another bean. Repository creation can apply settings declared on the mapped entity; see Automatic Settings Application.

JavaConfig

import io.vanslog.spring.data.meilisearch.repository.config.EnableMeilisearchRepositories;

import org.springframework.context.annotation.Configuration;

@Configuration
@EnableMeilisearchRepositories(
        basePackages = "com.example.movies",
        meilisearchTemplateRef = "meilisearchTemplate")
class RepositoryConfig {
}

@EnableMeilisearchRepositories supports the standard Spring Data repository bootstrap options for scanning and repository factory selection, including:

  • value and basePackages

  • basePackageClasses

  • includeFilters and excludeFilters

  • repositoryImplementationPostfix

  • repositoryFactoryBeanClass

  • meilisearchTemplateRef

  • considerNestedRepositories

If no base packages are configured, Spring Data scans the package of the annotated configuration class.

queryLookupStrategy defaults to CREATE_IF_NOT_FOUND and supports the derived finder subset documented in Query Methods. USE_DECLARED_QUERY cannot resolve derived methods. namedQueriesLocation remains available for Spring Data configuration compatibility, but named queries and declared @Query methods are rejected at repository bootstrap.

XML Namespace

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:meilisearch="http://www.vanslog.io/spring/data/meilisearch"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.vanslog.io/spring/data/meilisearch
       http://www.vanslog.io/spring/data/meilisearch/spring-meilisearch-1.0.xsd">

    <context:property-placeholder/>
    <bean id="jsonHandler" class="com.meilisearch.sdk.json.GsonJsonHandler"/>
    <meilisearch:meilisearch-client
            id="meilisearchClient"
            api-key="${MEILISEARCH_API_KEY}"
            request-timeout="5000"
            request-interval="50"/>

    <bean id="meilisearchTemplate"
          class="io.vanslog.spring.data.meilisearch.client.msc.MeilisearchTemplate">
        <constructor-arg ref="meilisearchClient"/>
    </bean>

    <meilisearch:repositories
            base-package="com.example.movies"
            meilisearch-template-ref="meilisearchTemplate"/>
</beans>

The XML namespace extends the Spring Data repository namespace and adds the meilisearch-template-ref attribute. See XML namespace reference for the full attribute list. The one-argument MeilisearchTemplate constructor provides a default mapping converter and ObjectMapper. Wire them explicitly only when you need to customize conversion; see Object Mapping.