Skip to content
CAI
Software that uses CAICheck a score

junghoon-vans/spring-data-meilisearch

64.4

Adequate · 21 September 2026

7.4k

lines of production code

Java

primary language

3

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Spring Data integration library for Meilisearch, providing a high-level, repository-based API for interacting with Meilisearch instances. It enables developers to perform standard CRUD operations, complex search queries, and index management using Spring's familiar programming model, including support for Kotlin extensions and XML configuration. The library abstracts the underlying Meilisearch SDK, offering type-safe entity mapping, automatic index configuration via annotations, and comprehensive test support for integration testing.

How it got here

2023 — Meilisearch integration and repository support

21 changes.

This period focused on implementing comprehensive Spring Data support for Meilisearch, introducing core mapping, conversion, and template layers. The work established full repository capabilities, including annotation-based and XML configuration, alongside extensive test coverage for the new functionality.

2025–2026 — Meilisearch client and Kotlin extensions

8 changes.

This period focused on implementing the Meilisearch Java client and introducing new query types for search, facets, and similar documents. The team also added comprehensive unit tests for the client and query classes, while migrating the documentation build to Antora.

Features

Add Meilisearch Java client implementation for search, facets, and index operations

The library now includes a concrete implementation of the Meilisearch client using the \com.meilisearch.sdk:meilisearch-java\ SDK. This adds support for standard search, facet search, similar document search, and federated multi-search operations. It also introduces runtime index settings operations, including configuration for pagination, faceting, typo tolerance, and embedders. The change provides the underlying client infrastructure and response conversion logic required for these features.

src/main/java/io/vanslog/spring/data/meilisearch/client/msc · high confidence

Add Meilisearch entity conversion infrastructure

The library introduces a new core conversion layer for Meilisearch, providing a \MeilisearchConverter\ interface and a \MappingMeilisearchConverter\ implementation that maps between Java entities and Meilisearch \Document\ objects. This includes support for custom type conversions via \MeilisearchCustomConversions\ and a \Document\ class to represent search results. Users can now leverage Spring Data's conversion service for type mapping, allowing for more flexible and type-safe entity handling when interacting with Meilisearch.

src/main/java/io/vanslog/spring/data/meilisearch/core/convert · medium confidence

Add Meilisearch-specific exception types and package-level nullability annotations

The module introduces four new exception classes—DocumentAccessException, IndexAccessException, TaskStatusException, and UncategorizedMeilisearchException—to provide specific error handling for Meilisearch operations. Additionally, the root package now includes package-info.java with Spring's @NonNullApi and @NonNullFields annotations to enforce null-safety conventions across the library.

src/main/java/io/vanslog/spring/data/meilisearch · high confidence

Add annotation-based and XML configuration support for Meilisearch client

Users can now configure the Meilisearch client using either Java-based annotations or XML namespaces. The new \MeilisearchConfiguration\ class provides a Spring \@Configuration\ setup for the client, converter, and operations, while \MeilisearchClientBeanDefinitionParser\ and \MeilisearchNamespaceHandler\ enable XML-based configuration, allowing users to define the client, JSON handler, and custom conversions through Spring XML beans or Java config classes.

src/main/java/io/vanslog/spring/data/meilisearch/config · high confidence

Added Meilisearch repository configuration support

Introduced the Spring Data infrastructure for Meilisearch repositories, including the @EnableMeilisearchRepositories annotation, the MeilisearchRepositoriesRegistrar, and the MeilisearchRepositoryConfigExtension. This enables automatic discovery and configuration of Meilisearch repositories in Spring applications.

src/main/java/io/vanslog/spring/data/meilisearch/repository/config · high confidence

Added Meilisearch repository support classes

Added new classes to support Meilisearch repository operations, including the MeilisearchEntityInformation interface and its implementation, the MeilisearchEntityInformationCreator and its implementation, and the MeilisearchRepositoryFactory and MeilisearchRepositoryFactoryBean to enable repository creation and entity information handling for Meilisearch.

src/main/java/io/vanslog/spring/data/meilisearch/repository/support · high confidence

Added Meilisearch template and repository implementations

Introduced the core runtime templates for Meilisearch operations, including \MeilisearchTemplate\ for document and search operations, \MeilisearchIndexTemplate\ for index lifecycle and settings management, and \MeilisearchInstanceTemplate\ for instance-level health and stats. Additionally, \SimpleMeilisearchRepository\ was added to provide Spring Data repository support with paging, sorting, and standard CRUD operations.

spring-data-meilisearch · high confidence

Added Spring XML schema for Meilisearch client configuration

A new XSD schema file (spring-meilisearch-1.0.xsd) was added to define the XML configuration structure for the Meilisearch client. This schema allows users to configure the client's host URL, API key, client agents, request timeout, request interval, and JSON handler via Spring XML beans, providing a declarative way to set up the Meilisearch integration in Spring applications.

src/main/resources/io · high confidence

Added Spring namespace handler and schema for Meilisearch configuration

New META-INF files (spring.handlers and spring.schemas) were added to register the Meilisearch Spring namespace. This enables users to configure Meilisearch using a custom XML schema (spring-meilisearch-1.0.xsd) via the http://www.vanslog.io/spring/data/meilisearch URI.

src/main/resources/META-INF · high confidence

Adds Kotlin extension functions for Meilisearch operations

New Kotlin extension functions are introduced for DocumentOperations, MeilisearchOperations, and SearchOperations. These extensions provide type-safe, reified generic methods for common operations such as getting, multi-getting, checking existence, and deleting documents, as well as index operations and various search methods (standard, multi-search, facet search, and similar search), simplifying usage in Kotlin applications.

src/main/kotlin · high confidence

Introduce core Meilisearch operations and domain models

The library adds a new \DocumentOperations\ interface for saving, retrieving, and deleting documents, alongside \MeilisearchIndexOperations\ for managing index lifecycle, metadata, and runtime settings. A \MeilisearchCallback\ functional interface is introduced to wrap low-level SDK calls, and a \SearchHit\ class is added to represent search results, supporting both standard and federated multi-search responses. Additionally, supporting classes for index statistics, health checks, and version information are included.

src/main/java/io/vanslog/spring/data/meilisearch/core · high confidence

Introduce core mapping infrastructure for Meilisearch entities

The library now provides a complete mapping layer for Meilisearch, introducing the \MeilisearchPersistentEntity\ and \MeilisearchPersistentProperty\ interfaces alongside their \Simple\ implementations (\SimpleMeilisearchPersistentEntity\, \SimpleMeilisearchPersistentProperty\) and a \SimpleMeilisearchMappingContext\. This new core mapping system enables the framework to resolve index UIDs, apply index settings (such as pagination, typo tolerance, and faceting) during bootstrapping, and map entity properties to Meilisearch fields, supporting features like localized attributes and embedders.

src/main/java/io/vanslog/spring/data/meilisearch/core/mapping · high confidence

The Meilisearch integration now supports facet search, similar-document search, and multi-index search. Users can construct queries using the new FacetQuery, SimilarQuery, and IndexQuery classes (along with their respective builders), which introduce capabilities such as filtering by facet, finding similar documents via an embedder, and querying across multiple indices with federation options.

src/main/java/io/vanslog/spring/data/meilisearch/core/query · high confidence

New annotations for Meilisearch index configuration

The library now provides a set of new Java annotations to configure Meilisearch index settings directly on domain classes. The \@Document\ annotation marks a class for persistence, while \@Setting\ allows configuration of core index properties like searchable, filterable, and sortable attributes, as well as ranking rules, synonyms, and stop words. Additional annotations enable fine-grained control over search behavior: \@TypoTolerance\ and \@MinWordSizeForTypos\ adjust spelling correction; \@Pagination\ sets result limits; \@Faceting\ configures facet limits; \@LocalizedAttribute\ handles multilingual content; and \@Embedder\ configures AI-powered search sources. These annotations allow users to declaratively define their Meilisearch index structure and behavior within the Spring Data mapping layer.

src/main/java/io/vanslog/spring/data/meilisearch/annotations · high confidence

New client configuration and factory components for Meilisearch integration

The library introduces a new client configuration model for Meilisearch, adding the \ClientConfiguration\ interface and its \ClientConfigurationBuilder\ for fluent setup of connection details. A \DefaultClientConfiguration\ implementation stores the host URL, API key, client agents, request timeout, and interval. The \MeilisearchClient\ class extends the Meilisearch SDK's \Client\ to support custom request timeouts and integrates a \JsonHandler\ (defaulting to Gson). Additionally, a \MeilisearchClientFactoryBean\ is added to the Spring context, allowing users to configure the client via Spring XML or Java config with properties like host URL, API key, JSON handler, and timeout settings.

src/main/java/io/vanslog/spring/data/meilisearch/client · high confidence

Behavioural changes

Migrate documentation build to Antora

The project has migrated its documentation build system to Antora. This introduces a new Antora playbook and configuration files that define how the reference documentation is assembled, including extensions for versioning and metadata. A new Node.js script is added to generate the publish playbook by filtering out local paths and head release tags, and another script handles copying the latest stable version to the correct URL segment. The Antora descriptor includes template variables for Spring versions and other metadata. This change affects how the documentation is built and published, aligning with the release URL policy.

src/main/antora · medium confidence

Patch Antora cache-scandir to use recursive directory creation

A new postinstall script in the scripts directory patches the @springio/antora-extensions package to replace the non-recursive fs.mkdirSync call with a recursive one, ensuring that parent directories are created as needed during the Antora reference documentation build process.

scripts · high confidence

Repository documentation and build infrastructure added

The repository now includes comprehensive documentation and build tooling: an Agent Guide (AGENTS.md) detailing the project structure, conventions, and development process; a CONTRIBUTING guide; a Maven wrapper (mvnw) for consistent local builds; and a shift from Markdown to AsciiDoc for the README and testing documentation. Additionally, the project adds a .gitignore file, an Apache 2.0 LICENSE, and an Antora playbook for reference documentation generation.

(repo-wide) · high confidence

Upgrade Maven Wrapper to 3.9.6

The project now uses Maven Wrapper version 3.9.6, ensuring that developers and CI systems use a consistent, pre-configured version of Maven (3.9.6) without requiring a global Maven installation. This improves build reproducibility and reduces environment-related issues.

.mvn · high confidence

Test coverage

Added JUnit 5 integration test support for Meilisearch; Added integration and unit tests for Meilisearch repository operations; Added test entity classes for Meilisearch integration; Added tests for Kotlin extension methods on Meilisearch operations; Added unit and integration tests for Meilisearch core components; Added unit tests for MeiliSearch client converters; Added unit tests for Meilisearch configuration and client setup; Added unit tests for Meilisearch mapping components; Added unit tests for SimilarQuery.

Dependencies

Updated Meilisearch Java SDK to v0.20.1

The project has upgraded the Meilisearch Java SDK to version 0.20.1. This update ensures compatibility with the latest Meilisearch features and fixes, and resolves potential issues related to the OkHttp dependency. Additionally, the Spring Data parent build has been updated to version 3.3.13-SNAPSHOT, and the Kotlin standard library has been upgraded to version 2.2.21. The build configuration also now targets Java 17 and uses Kotlin language version 2.2.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 64 → 64 (+0.5)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 93 → 95 (+2.1)
  • Architecture 98 → 66 (-32.6)
  • Maturity 58 → 58 (+0.6)
  • Readiness 65 → 67 (+2.1)
  • Security 60 → 74 (+14.1)

Resolved (31)

  • Change coupling: ResponseConverter.java ↔ SearchOperations.java (src/main/java/io/vanslog/spring/data/meilisearch/client/msc/ResponseConverter.java)
  • Coverage not included — suite not readable by the collector
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (15 lines × 2) (src/main/java/io/vanslog/spring/data/meilisearch/core/convert/MappingMeilisearchConverter.java)
  • Duplicated block (6 lines × 2) (src/main/java/io/vanslog/spring/data/meilisearch/core/mapping/SimpleMeilisearchPersistentEntity.java)
  • Duplicated block (7 lines × 2) (src/main/java/io/vanslog/spring/data/meilisearch/client/msc/RequestConverter.java)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • …and 11 more

New (39)

  • ClassTooLong: MeilisearchIndexSettings (src/main/java/io/vanslog/spring/data/meilisearch/core/MeilisearchIndexSettings.java)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Duplicated block (16 lines × 2) (src/main/java/io/vanslog/spring/data/meilisearch/core/convert/MappingMeilisearchConverter.java)
  • Duplicated block (18–19 lines × 2) (src/main/java/io/vanslog/spring/data/meilisearch/client/msc/RequestConverter.java)
  • Duplicated block (7 lines × 2) (src/main/java/io/vanslog/spring/data/meilisearch/core/mapping/SimpleMeilisearchPersistentEntity.java)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • …and 19 more

Architecture

  • Unchanged — 0 containers · 1 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

junghoon-vans/spring-data-meilisearch was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 2041027cc9398c8963107d3dfb6cf1390e620726 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.