Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: junghoon-vans/spring-data-meilisearch
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.2.1
Choose a base ref
...
head repository: junghoon-vans/spring-data-meilisearch
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: refs/heads/main
Choose a head ref
Loading
Showing with 6,780 additions and 1,398 deletions.
  1. +2 −38 .github/ISSUE_TEMPLATE/BUG-REPORT.yml
  2. +2 −2 .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml
  3. +14 −4 .github/PULL_REQUEST_TEMPLATE.md
  4. +16 −13 .github/release-drafter.yml
  5. +1 −1 .github/workflows/cd.yaml
  6. +1 −1 .github/workflows/ci.yaml
  7. +42 −0 .github/workflows/docs.yml
  8. +1 −17 .mvn/wrapper/maven-wrapper.properties
  9. +3 −0 CONTRIBUTING.adoc
  10. +2 −2 LICENSE
  11. +91 −57 README.adoc
  12. +0 −13 checkstyle-suppressions.xml
  13. +114 −137 pom.xml
  14. +20 −0 src/main/asciidoc/index.adoc
  15. +15 −0 src/main/asciidoc/preface.adoc
  16. +155 −0 src/main/asciidoc/reference/meilisearch-client.adoc
  17. +40 −0 src/main/asciidoc/reference/meilisearch-document.adoc
  18. +38 −0 src/main/asciidoc/reference/meilisearch-operations.adoc
  19. +131 −0 src/main/asciidoc/reference/meilisearch-repositories.adoc
  20. +66 −0 src/main/asciidoc/reference/meilisearch-settings.adoc
  21. +35 −0 src/main/java/io/vanslog/spring/data/meilisearch/DocumentAccessException.java
  22. +53 −0 src/main/java/io/vanslog/spring/data/meilisearch/IndexAccessException.java
  23. +67 −0 src/main/java/io/vanslog/spring/data/meilisearch/TaskStatusException.java
  24. +45 −0 src/main/java/io/vanslog/spring/data/meilisearch/UncategorizedMeilisearchException.java
  25. +29 −8 src/main/java/io/vanslog/spring/data/meilisearch/annotations/Document.java
  26. +37 −0 src/main/java/io/vanslog/spring/data/meilisearch/annotations/Faceting.java
  27. +39 −0 src/main/java/io/vanslog/spring/data/meilisearch/annotations/MinWordSizeForTypos.java
  28. +41 −0 src/main/java/io/vanslog/spring/data/meilisearch/annotations/Pagination.java
  29. +153 −0 src/main/java/io/vanslog/spring/data/meilisearch/annotations/Setting.java
  30. +39 −0 src/main/java/io/vanslog/spring/data/meilisearch/annotations/Synonym.java
  31. +43 −0 src/main/java/io/vanslog/spring/data/meilisearch/annotations/TypoTolerance.java
  32. +53 −41 src/main/java/io/vanslog/spring/data/meilisearch/client/ClientConfiguration.java
  33. +103 −85 src/main/java/io/vanslog/spring/data/meilisearch/client/ClientConfigurationBuilder.java
  34. +62 −51 src/main/java/io/vanslog/spring/data/meilisearch/client/DefaultClientConfiguration.java
  35. +60 −0 src/main/java/io/vanslog/spring/data/meilisearch/client/MeilisearchClient.java
  36. +96 −57 src/main/java/io/vanslog/spring/data/meilisearch/client/MeilisearchClientFactoryBean.java
  37. +139 −0 src/main/java/io/vanslog/spring/data/meilisearch/client/msc/RequestConverter.java
  38. +68 −0 src/main/java/io/vanslog/spring/data/meilisearch/client/msc/ResponseConverter.java
  39. +23 −0 src/main/java/io/vanslog/spring/data/meilisearch/client/msc/package-info.java
  40. +0 −48 src/main/java/io/vanslog/spring/data/meilisearch/config/JsonHandlerBuilder.java
  41. +50 −46 src/main/java/io/vanslog/spring/data/meilisearch/config/MeilisearchClientBeanDefinitionParser.java
  42. +69 −23 src/main/java/io/vanslog/spring/data/meilisearch/config/MeilisearchConfiguration.java
  43. +72 −0 src/main/java/io/vanslog/spring/data/meilisearch/config/MeilisearchConfigurationSupport.java
  44. +31 −10 src/main/java/io/vanslog/spring/data/meilisearch/config/MeilisearchNamespaceHandler.java
  45. +157 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/DocumentOperations.java
  46. +30 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/MeilisearchCallback.java
  47. +44 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/MeilisearchOperations.java
  48. +317 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/MeilisearchTemplate.java
  49. +25 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/SearchHit.java
  50. +90 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/SearchHitSupport.java
  51. +53 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/SearchHits.java
  52. +43 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/SearchHitsImpl.java
  53. +81 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/SearchOperations.java
  54. +25 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/SearchPage.java
  55. +70 −39 src/main/java/io/vanslog/spring/data/meilisearch/core/convert/MappingMeilisearchConverter.java
  56. +47 −14 src/main/java/io/vanslog/spring/data/meilisearch/core/convert/MeilisearchConverter.java
  57. +47 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/convert/MeilisearchCustomConversions.java
  58. +41 −8 src/main/java/io/vanslog/spring/data/meilisearch/core/mapping/MeilisearchPersistentEntity.java
  59. +35 −20 src/main/java/io/vanslog/spring/data/meilisearch/core/mapping/MeilisearchPersistentProperty.java
  60. +27 −16 src/main/java/io/vanslog/spring/data/meilisearch/core/mapping/SimpleMeilisearchMappingContext.java
  61. +193 −38 src/main/java/io/vanslog/spring/data/meilisearch/core/mapping/SimpleMeilisearchPersistentEntity.java
  62. +51 −42 ...ain/java/io/vanslog/spring/data/meilisearch/core/mapping/SimpleMeilisearchPersistentProperty.java
  63. +283 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/query/BaseQuery.java
  64. +265 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/query/BaseQueryBuilder.java
  65. +31 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/query/BasicQuery.java
  66. +25 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/query/BasicQueryBuilder.java
  67. +32 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/query/FederationOptions.java
  68. +56 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/query/IndexQuery.java
  69. +34 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/query/IndexQueryBuilder.java
  70. +22 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/query/MatchingStrategy.java
  71. +41 −0 src/main/java/io/vanslog/spring/data/meilisearch/core/query/Query.java
  72. +0 −40 src/main/java/io/vanslog/spring/data/meilisearch/core/support/DefaultEntityMapper.java
  73. +0 −27 src/main/java/io/vanslog/spring/data/meilisearch/core/support/EntityMapper.java
  74. +33 −0 src/main/java/io/vanslog/spring/data/meilisearch/repository/MeilisearchRepository.java
  75. +134 −0 ...main/java/io/vanslog/spring/data/meilisearch/repository/config/EnableMeilisearchRepositories.java
  76. +39 −0 ...n/java/io/vanslog/spring/data/meilisearch/repository/config/MeilisearchRepositoriesRegistrar.java
  77. +80 −0 ...va/io/vanslog/spring/data/meilisearch/repository/config/MeilisearchRepositoryConfigExtension.java
  78. +3 −0 src/main/java/io/vanslog/spring/data/meilisearch/repository/config/package-info.java
  79. +1 −1 src/main/java/io/vanslog/spring/data/meilisearch/{core/support → repository}/package-info.java
  80. +53 −0 ...va/io/vanslog/spring/data/meilisearch/repository/support/MappingMeilisearchEntityInformation.java
  81. +42 −0 ...main/java/io/vanslog/spring/data/meilisearch/repository/support/MeilisearchEntityInformation.java
  82. +35 −0 ...va/io/vanslog/spring/data/meilisearch/repository/support/MeilisearchEntityInformationCreator.java
  83. +59 −0 ...o/vanslog/spring/data/meilisearch/repository/support/MeilisearchEntityInformationCreatorImpl.java
  84. +56 −0 ...main/java/io/vanslog/spring/data/meilisearch/repository/support/MeilisearchRepositoryFactory.java
  85. +68 −0 .../java/io/vanslog/spring/data/meilisearch/repository/support/MeilisearchRepositoryFactoryBean.java
  86. +179 −0 src/main/java/io/vanslog/spring/data/meilisearch/repository/support/SimpleMeilisearchRepository.java
  87. +3 −0 src/main/java/io/vanslog/spring/data/meilisearch/repository/support/package-info.java
  88. +56 −23 src/main/resources/io/vanslog/spring/data/meilisearch/config/spring-meilisearch-1.0.xsd
  89. +0 −29 src/test/java/io/vanslog/spring/data/meilisearch/client/ClientConfigurationTest.java
  90. +43 −0 src/test/java/io/vanslog/spring/data/meilisearch/client/ClientConfigurationUnitTest.java
  91. +0 −39 src/test/java/io/vanslog/spring/data/meilisearch/config/MeilisearchConfigurationTest.java
  92. +97 −0 src/test/java/io/vanslog/spring/data/meilisearch/config/MeilisearchConfigurationUnitTests.java
  93. +0 −41 src/test/java/io/vanslog/spring/data/meilisearch/config/MeilisearchNamespaceHandlerTest.java
  94. +76 −0 src/test/java/io/vanslog/spring/data/meilisearch/config/MeilisearchNamespaceHandlerUnitTests.java
  95. +269 −0 src/test/java/io/vanslog/spring/data/meilisearch/core/MeilisearchTemplateIntegrationTests.java
  96. +0 −33 src/test/java/io/vanslog/spring/data/meilisearch/core/convert/MappingMeilisearchConverterTest.java
  97. +48 −0 ...st/java/io/vanslog/spring/data/meilisearch/core/convert/MappingMeilisearchConverterUnitTests.java
  98. +56 −0 ...st/java/io/vanslog/spring/data/meilisearch/core/convert/MeilisearchCustomConversionsUnitTest.java
  99. +0 −40 .../java/io/vanslog/spring/data/meilisearch/core/mapping/SimpleMeilisearchPersistentEntityTests.java
  100. +51 −0 ...a/io/vanslog/spring/data/meilisearch/core/mapping/SimpleMeilisearchPersistentEntityUnitTests.java
  101. +0 −65 ...java/io/vanslog/spring/data/meilisearch/core/mapping/SimpleMeilisearchPersistentPropertyTest.java
  102. +71 −0 ...io/vanslog/spring/data/meilisearch/core/mapping/SimpleMeilisearchPersistentPropertyUnitTests.java
  103. +0 −47 src/test/java/io/vanslog/spring/data/meilisearch/core/support/DefaultEntityMapperTest.java
  104. +87 −29 src/test/java/io/vanslog/spring/data/meilisearch/entities/Movie.java
  105. +23 −0 src/test/java/io/vanslog/spring/data/meilisearch/entities/SortableMovie.java
  106. +32 −0 src/test/java/io/vanslog/spring/data/meilisearch/entities/TotalHitsLimited.java
  107. +54 −49 src/test/java/io/vanslog/spring/data/meilisearch/junit/jupiter/MeilisearchConnection.java
  108. +85 −76 src/test/java/io/vanslog/spring/data/meilisearch/junit/jupiter/MeilisearchConnectionInfo.java
  109. +26 −10 src/test/java/io/vanslog/spring/data/meilisearch/junit/jupiter/MeilisearchExtension.java
  110. +20 −5 src/test/java/io/vanslog/spring/data/meilisearch/junit/jupiter/MeilisearchTest.java
  111. +26 −12 src/test/java/io/vanslog/spring/data/meilisearch/junit/jupiter/MeilisearchTestConfiguration.java
  112. +331 −0 ...est/java/io/vanslog/spring/data/meilisearch/repository/MeilisearchRepositoryIntegrationTests.java
  113. +142 −0 .../io/vanslog/spring/data/meilisearch/repository/SortableMeilisearchRepositoryIntegrationTests.java
  114. +64 −0 .../spring/data/meilisearch/repository/support/MeilisearchEntityInformationCreatorImplUnitTests.java
  115. +12 −1 src/test/resources/io/vanslog/spring/data/meilisearch/config/namespace.xml
40 changes: 2 additions & 38 deletions .github/ISSUE_TEMPLATE/BUG-REPORT.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: "Bug Report"
description: Create a report to help us improve
title: "[BUG]: "
labels: [
"bug"
"status: waiting-for-triage",
"type: bug",
]
body:
- type: textarea
@@ -32,39 +32,3 @@ body:
- Windows
validations:
required: true
- type: textarea
id: steps
attributes:
label: "Steps to Reproduce"
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: false
- type: textarea
id: expected
attributes:
label: "Expected Behavior"
description: A clear and concise description of what you expected to happen.
placeholder: Expected behavior
validations:
required: false
- type: textarea
id: actual
attributes:
label: "Actual Behavior"
description: A clear and concise description of what actually happened.
placeholder: Actual behavior
validations:
required: false
- type: textarea
id: additional
attributes:
label: "Additional Context"
description: Add any other context about the problem here.
placeholder: Additional context
validations:
required: false
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: "Feature Request"
description: Suggest an idea for this project
title: "[FEATURE]: "
labels: [
"feature"
"status: waiting-for-triage",
"type: enhancement",
]
body:
- type: textarea
18 changes: 14 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
## Related Issue
<!--
<!-- What issue does this PR relate to? -->
Thank you for proposing a pull request. This template will guide you through the essential steps necessary for a pull request.
## Description
When contributing, please make sure an issue exists in issue tracker and comment on this issue with how you want to address it. By this we not only know that someone is working on an issue, we can also align architectural questions and possible solutions before work is invested . We so can prevent that much work is put into Pull Requests that have little or no chances of being merged.
<!-- Describe your changes in detail -->
Make sure that:
-->

- [ ] You have read the [Spring Data contribution guidelines](https://github.com/spring-projects/spring-data-build/blob/master/CONTRIBUTING.adoc).
- [ ] **There is a ticket in the bug tracker for the project in our [issue tracker](https://github.com/junghoon-vans/spring-data-meilisearch/issues)**. Add the issue number to the _Closes #issue-number_ line below
- [ ] You use the code formatters provided [here](https://github.com/spring-projects/spring-data-build/tree/master/etc/ide) and have them applied to your changes. Don’t submit any formatting related changes.
- [ ] You submit test cases (unit or integration tests) that back your changes.
- [ ] You added yourself as author in the headers of the classes you touched. Amend the date range in the Apache license header if needed. For new types, add the license header (copy from another file and set the current year only).

Closes #issue-number
29 changes: 16 additions & 13 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
categories:
- title: '⚠️ Breaking changes'
label: 'breaking-change'
- title: '🚀 Features'
label: 'feature'
- title: '🐛 Bug Fixes'
label: 'fix'
- title: '🛠️ Maintenance'
labels: ['chore', 'refactor', 'style']
- title: '📝 Documentation'
label: 'documentation'
- title: '⭐ New Features'
label: 'type: enhancement'
- title: '🐞 Bug Fixes'
label: 'type: bug'
- title: '📔 Documentation'
label: 'type: documentation'
- title: '🔨 Dependency Upgrades'
label: 'type: dependency-upgrade'

exclude-labels:
- 'skip-changelog'
change-template: '* $TITLE #$NUMBER'
template: |
## What's Changed
## 📗 Links
* [Spring Data Meilisearch Reference documentation](https://junghoon-vans.github.io/spring-data-meilisearch/)
$CHANGES
## ❤️ Contributors
We'd like to thank all the contributors who worked on this release!
$CONTRIBUTORS
2 changes: 1 addition & 1 deletion .github/workflows/cd.yaml
Original file line number Diff line number Diff line change
@@ -23,7 +23,7 @@ jobs:
gpg-passphrase: GPG_PASSPHRASE

- name: Deploy to OSSRH
run: mvn deploy -DskipTests -P release
run: mvn deploy -DskipTests -P central
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: >
mvn verify sonar:sonar -Pci
./mvnw verify sonar:sonar -Pci
-Dsonar.host.url=https://sonarcloud.io
-Dsonar.organization=junghoon-ban
-Dsonar.projectKey=spring-data-meilisearch
42 changes: 42 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Reference Documentation

on:
push:
tags:
- 'v*.*.*'

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: 'temurin'
cache: 'maven'
- name: Build reference documentation
run: ./mvnw clean install -Pdistribute
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: './target/site/reference/html'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
18 changes: 1 addition & 17 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,18 +1,2 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.4/apache-maven-3.9.4-bin.zip
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
3 changes: 3 additions & 0 deletions CONTRIBUTING.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
= Spring Data contribution guidelines

You find the contribution guidelines for Spring Data projects https://github.com/spring-projects/spring-data-build/blob/main/CONTRIBUTING.adoc[here].
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
https://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

@@ -192,7 +192,7 @@
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0
https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
148 changes: 91 additions & 57 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -1,87 +1,121 @@
= Spring Data for Meilisearch

image:https://img.shields.io/maven-central/v/io.vanslog/spring-data-meilisearch.svg?label=Maven%20Central[Maven Central, link=https://central.sonatype.com/artifact/io.vanslog/spring-data-meilisearch/]
image:https://sonarcloud.io/api/project_badges/measure?project=spring-data-meilisearch&metric=sqale_rating[Maintainability Rating, link=https://sonarcloud.io/summary/new_code?id=spring-data-meilisearch]
image:https://sonarcloud.io/api/project_badges/measure?project=spring-data-meilisearch&metric=coverage[Coverage, link=https://sonarcloud.io/summary/new_code?id=spring-data-meilisearch]
image:https://img.shields.io/github/license/junghoon-vans/spring-data-meilisearch?label=License[License, link=LICENSE]
image:https://img.shields.io/maven-central/v/io.vanslog/spring-data-meilisearch.svg?label=Maven%20Central[Maven Central,link=https://central.sonatype.com/artifact/io.vanslog/spring-data-meilisearch/]
image:https://sonarcloud.io/api/project_badges/measure?project=spring-data-meilisearch&metric=sqale_rating[Maintainability Rating,link=https://sonarcloud.io/summary/new_code?id=spring-data-meilisearch]
image:https://sonarcloud.io/api/project_badges/measure?project=spring-data-meilisearch&metric=coverage[Coverage,link=https://sonarcloud.io/summary/new_code?id=spring-data-meilisearch]
image:https://img.shields.io/github/license/junghoon-vans/spring-data-meilisearch?label=License[License,link=LICENSE]

Spring Data Implementation for Meilisearch
The Spring Data Meilisearch project provides integration with the Meilisearch search engine.

== Client Configuration
== Features

This library support using Java based `@Configuration` or XML Namespace for configuring the Meilisearch Client.
* Spring Configuration support using Java based `@Configuration` classes or an XML namespace for the Meilisearch client.
* Implementation of CRUD methods for Meilisearch Documents.

The elements in the configuration are:
== Getting Started

* `host URL`: The Meilisearch host URL
** default is `http://localhost:7700` in namespace based configuration
* `API Key`: The Meilisearch API Key
* `JSON Handler`: The JSON handler for serializing and deserializing the documents
** default is `GsonJsonHandler`
* `Client Agents`: The `User-Agent` header for the Meilisearch Client
** default is empty array

=== Annotation based configuration
Here is a quick teaser of an application using Spring Data Repositories in Java:

[source,java]
----
public interface MovieRepository extends CrudRepository<Movie, Integer> { }
@Service
public class MyService {
@Autowired private MovieRepository repository;
public void doWork(Movie movie) {
repository.save(movie);
}
}
@Configuration
public class CustomConfiguration extends MeilisearchConfiguration {
@Override
public ClientConfiguration clientConfiguration() {
return ClientConfiguration.builder()
.connectedToLocalhost()
.withApiKey("masterKey")
.build();
}
@EnableMeilisearchRepositories
public class Config extends MeilisearchConfiguration {
@Override
public ClientConfiguration clientConfiguration() {
return ClientConfiguration.builder()
.connectedToLocalhost()
.withApiKey("masterKey")
.build();
}
}
----

The `host URL` and `API Key` are required configuration.
=== Maven configuration

=== Namespace based configuration
Add the Maven dependency:

[source,xml]
----
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:meilisearch="http://www.vanslog.io/spring/data/meilisearch"
xsi:schemaLocation="http://www.vanslog.io/spring/data/meilisearch http://www.vanslog.io/spring/data/meilisearch/spring-meilisearch-1.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<meilisearch:meilisearch-client id="meilisearchClient" api-key="masterKey"/>
</beans>
<dependency>
<groupId>io.vanslog</groupId>
<artifactId>spring-data-meilisearch</artifactId>
<version>${version}</version>
</dependency>
----

The `API Key` is required configuration.
The Host URL is set to `http://localhost:7700` unless otherwise specified.
If you’d rather like the latest snapshots of the upcoming major version, use our Maven snapshot repository and declare the appropriate dependency version.

== Document Definition
[source,xml]
----
<dependency>
<groupId>io.vanslog</groupId>
<artifactId>spring-data-meilisearch</artifactId>
<version>${version}-SNAPSHOT</version>
</dependency>
<repository>
<id>sonatype-snapshots</id>
<name>Sonatype Snapshot Repository</name>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
----

To define the https://www.meilisearch.com/docs/learn/core_concepts/documents[Document], you need to annotate a class with `@Document` annotation.
As an example, the following class defines a `Movie` document with `id`, `title`, `description` and `genres` fields.
== Guide

[source,java]
* Check the link:https://junghoon-vans.github.io/spring-data-meilisearch/[reference documentation], and link:https://javadoc.io/doc/io.vanslog/spring-data-meilisearch/latest/index.html[Javadoc].

== Reporting Issues

Spring Data uses GitHub as issue tracking system to record bugs and feature requests.
If you want to raise an issue, please follow the recommendations below:

* Before you log a bug, please search the
https://github.com/junghoon-vans/spring-data-meilisearch/issues[issue tracker] to see if someone has already reported the problem.
* If the issue doesn’t already exist, https://github.com/junghoon-vans/spring-data-meilisearch/issues/new[create a new issue].
* Please provide as much information as possible with the issue report, we like to know the version of Spring Data Meilisearch that you are using and JVM version.
* If you need to paste code, or include a stack trace format it as code using triple backtick.
* If possible try to create a test-case or project that replicates the issue.
Attach a link to your code or a compressed file containing your code.

== Building from Source

Spring Data can be easily built with the https://github.com/takari/maven-wrapper[maven wrapper].
You also need JDK 17 or above.

[source,bash]
----
@Document(indexUid = "movies")
public class Movie {
@Id
private String id;
private String title;
private String description;
private String[] genres;
}
$ ./mvnw clean install
----

=== Index UID
If you want to build with the regular `mvn` command, you will need https://maven.apache.org/run-maven/index.html[Maven v3.5.0 or above].

_Also see link:CONTRIBUTING.adoc[CONTRIBUTING.adoc] if you wish to submit pull requests._

=== Building reference documentation

Building the documentation builds also the project without running tests.

[source,bash]
----
$ ./mvnw clean install -Pdistribute
----

The https://www.meilisearch.com/docs/learn/core_concepts/indexes#index-uid[Index UID] is a unique identifier for an index.
It must be defined for each document with `@Document` annotation.
The generated documentation is available from `target/site/reference/html/index.html`.

=== Document id
== License

The https://www.meilisearch.com/docs/learn/core_concepts/primary_key#document-id[Document id] is a unique identifier for a document in an index.
It can be defined with `@Id` annotation or `id` field.
Spring Data Meilisearch is Open Source software released under the https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].
Loading