使用Elasticsearch
来源:jhipster |
时间:2018-11-08
|
|

使用Elasticsearch

Elasticsearch是一种在数据库之上添加搜索功能的选项。

此选项有一些限制:

  • 它仅适用于SQL数据库和MongoDB。未来将添加Cassandra和Couchbase支持(欢迎提供帮助!)。

  • 您的数据库与Elasticsearch之间没有一致性,因此您可能会有不同步的数据。这是正常的,因为Elasticsearch不是真正的数据库。因此,您可能需要编写一些特定代码来同步数据,例如使用Spring @Scheduled注释,每天晚上运行。

    • 这也意味着如果您的数据库在应用程序之外更改,您的搜索索引将不同步。Elasticsearch Reindexer JHipster模块可以在这些情况下帮助。

选择Elasticsearch选项时:

  • Spring Data Jest的帮助下使用Spring Data Elasticsearch Spring Data Jest允许与Elasticsearch的REST API进行通信。它禁用Spring Boot的自动配置并使用它自己的配置。

  • “repository”包具有新的子包,称为“搜索”,它包含所有ElastiSearch存储库。

  • “User”实体在Elasticsearch中编入索引,您可以使用/api/_search/users/:queryREST端点进行查询

  • 使用实体子生成器时,生成的实体将由Elasticsearch自动编入索引,并在REST端点中使用。搜索功能也会添加到Angular / React用户界面,因此您可以在主CRUD屏幕中搜索您的实体。

在开发中使用

在开发中,JHipster运行嵌入式Elasticsearch实例。如果设置SPRING_DATA_JEST_URI环境变量(或spring.data.jest.uri向您属性添加属性application-dev.yml),也可以使用外部Elasticsearch实例

运行外部Elasticsearch实例的最简单方法是使用提供的Docker Compose配置:

docker-compose -f src/main/docker/elasticsearch.yml up -d

然后设置一个环境变量来指向它:

export SPRING_DATA_JEST_URI=http://localhost:9200

在生产中使用

在生产中,JHipster期望一个外部的Elasticsearch实例。默认情况下,应用程序查找在localhost上运行的Elasticsearch实例。这可以通过使用文件中的标准Spring Boot属性进行配置application-prod.yml

在Heroku上使用

在Heroku上,Bonsai Elasticsearch被配置为附加组件。JHipster自动配置为与之通信。


提交
查看更多评论
没有更多评论