Easy-Es (EE for short) is an ORM development framework based on RestHighLevelClient officially provided by ElasticSearch (Es for short). If you have used Mybatis-Plus (MP for short), then you can basically get started with EE at zero learning cost. EE is an Es replacement version of MP. In some aspects, it is even simpler than MP, and it also incorporates more unique functions of Es, to help you quickly realize the development of various scenarios.
Idea Leave simplicity, ease of use, and convenience to users, and leave complexity to the framework.
Vision Let the world have no difficult Es, and is committed to becoming the world's most popular ElasticSearch search engine development framework.
- Fully automatic index hosting: The world's first open source index hosting mode, developers do not need to care about the cumbersome steps such as index creation and update and data migration, the entire life cycle of the index can be hosted by the framework, which is automatically completed by the framework, and the process is zero Downtime, users do not perceive, completely liberate developers
- Shield language differences: Developers only need to know MySQL syntax to use Es, and it is really easy to do everything. There is no need to learn the boring and easy-to-forget Es syntax. Es is used less frequently than MySQL. I will forget, there is no need to waste this time. Development should focus on business, save the time to go to iron, to accompany girlfriend to accompany family, not to be a leek of capitalists
- Extremely small amount of code: Compared with using RestHighLevelClient directly, the same query can save an average of about 3-5 times the amount of code
- Zero magic value: The field name is directly obtained from the entity, no need to enter the magic value of the field name string, which improves the readability of the code, and eliminates the bug caused by the modification of the field name and the omission of the code.
- Zero additional learning cost: Developers can seamlessly migrate to EE as long as they know the most popular Mybatis-Plus grammar in China. EE adopts the same grammar as the former, eliminating the additional learning cost of users and getting started directly. Cool
- Reduce the threshold for developers: Es usually requires intermediate and advanced developers to master, but by accessing EE, even beginners who only understand ES basics can easily master ES to complete the development of most needs, which can improve the Staff utilization, reduce business costs
- Non-Invasion: Only make enhancements without changing, introducing it will not affect existing projects, smooth as silk
- Low loss: Basic CURD will be automatically injected at startup, performance is basically no loss, and direct object-oriented operation
- Powerful CRUD operations: Built-in general-purpose Mapper, most CRUD operations can be implemented with only a small amount of configuration, and more powerful conditional constructors to meet various usage needs
- Support Lambda form invocation: Through Lambda expressions, you can easily write various query conditions, and you don't need to worry about writing wrong fields.
- Support primary key automatic generation: Support 2 primary key strategies, which can be freely configured to perfectly solve the primary key problem
- Support ActiveRecord mode: Support ActiveRecord form call, entity classes can perform powerful CRUD operations only by inheriting the Model class
- Support custom global general operation: Support global general method injection ( Write once, use anywhere )
- Built-in paging plug-in: Based on RestHighLevelClient physical paging, developers do not need to care about specific operations, and do not need to configure additional plug-ins, writing paging is equivalent to ordinary List query, and maintains the same paging return fields as the PageHelper plugin, no need to worry about naming effects
- Full coverage of MySQL functions: The functions supported in MySQL can be easily implemented through EE
- Support ES high-level syntax: support high-level syntax such as highlight search, word segmentation query, weight query, Geo location query, IP query, aggregation query, etc.
- Good scalability: The bottom layer still uses RestHighLevelClient, which can maintain its scalability. While using EE, developers can still use the functions of RestHighLevelClient
# Framework Architecture
# code hosting
# Participate in contribution
Although the birth of Easy-Es is not too long at present, but because it stands on the shoulders of giants (RestHighLevelClient and Mybatis-Plus), this is a framework that is the pinnacle of its debut, so it is not to say how well it is written, but It is that it combines the advantages of two current excellent frameworks, as well as the user habits and user ecology of MP, which determines the height of its starting point, and the future can be expected. Therefore, all heroes are welcome to participate in the improvement of Easy-Es. We Looking forward to your PR!