Assume you have large amount of text data and want to do search on your data. You decided to use elasticsearch or solr as search engine. Spring Data is your friend. This document shows an example application that uses elasticsearch with spring data. This application uses elasticsearch and JPA at the same time. Data comes from mysql and goes to elasticsearch.
Create document class to represent your domain object.
Next thing you need is repository class to manage your domain object. Query methods are possible.
Now we can work store data to elasticsearch using repository object. For JPA entity and repository classes see [1]. Component annotation makes this class spring managed. Autowired annotation tells spring to create required repository objects. Transactional annotation is required for declarative transaction management.
Now spring boot application entry point comes. EnableElasticsearchRepositories is need to activate elasticsearch repository. Since another repository is enabled, it is required to enable Jpa repository with EnableJpaRepositories.
Spring boot configures many details transparently. Spring data abstracts many internals from our views and makes life easier for us.
For complete listing on github see [2].
1. Spring Boot JPA Application
2. Github - essync
Create document class to represent your domain object.
Next thing you need is repository class to manage your domain object. Query methods are possible.
Now we can work store data to elasticsearch using repository object. For JPA entity and repository classes see [1]. Component annotation makes this class spring managed. Autowired annotation tells spring to create required repository objects. Transactional annotation is required for declarative transaction management.
Now spring boot application entry point comes. EnableElasticsearchRepositories is need to activate elasticsearch repository. Since another repository is enabled, it is required to enable Jpa repository with EnableJpaRepositories.
Spring boot configures many details transparently. Spring data abstracts many internals from our views and makes life easier for us.
For complete listing on github see [2].
1. Spring Boot JPA Application
2. Github - essync
Comments
Post a Comment