Introduction.md
# Introduction
Easy-Es (EE) is an official ElasticSearch (Es) based on RestHighLevelClient to build the ORM development framework, based on RestHighLevelClient, only enhancements do not change, to simplify the development, efficiency and born, if you have used Mybatis-Plus (MP for short), then you can basically zero learning costs directly to start EE, EE is the Es flat version of MP, in some ways even simpler than MP, but also incorporates more Es unique features to help you quickly achieve a variety of scenarios of development.
Philosophy Leave the simplicity, ease of use, convenience to the user, and leave the complexity to the framework.
Vision Let the world no difficult to use Es, is committed to become the world's most popular ElasticSearch search engine development framework.
# Benefits
- fully automated index hosting: the world's first open source index hosting model, developers do not need to care about the creation of index updates and data migration and other tedious steps, the entire life cycle of the index can be hosted to the framework, automatically completed by the framework, the process zero downtime, no user perception, completely free developers
- shield language differences: Developers only need to know MySQL syntax to use Es, truly a pass, no need to learn the boring and forgettable Es syntax, Es is relatively low frequency use of MySQL, learn a long time will be forgotten, there is no need to waste this time. The development should focus on business, save time to jerk off, go with your girlfriend and family, do not do the capitalist leeks
- Intelligent field type inference: Intelligent judgment based on the index type and the context of the current query type to determine whether the current query needs to be spliced .keyword suffix, to reduce the possibility of misuse of white
- Minimal code: Compared to using RestHighLevelClient directly, the same query can save an average of about 3-80 times the amount of code
- Strong scalability: The framework has built-in hybrid queries and native queries, whether at the index level or CRUD level, all have the scalability of >= native API. There is no need to worry about the impact on development after introduction, as long as it is a function that ES itself can support. You can do it all with Easy-ES
- Zero magic value: field name directly from the entity, no need to enter the field name string such as magic value, improve code readability, eliminate the field name change and code leakage due to the change of bugs
- Zero additional learning costs: Developers can seamlessly migrate to EE as long as they know the most popular Mybatis-Plus syntax in China, EE uses the same syntax as the former, eliminating additional learning costs for users to get started directly, cool!
- Lower developer threshold: Es usually requires senior developers to master, but by accessing EE, even beginners who only understand the basics of ES can easily master ES to complete most of the needs of the development, which can improve staff utilization and reduce enterprise costs
# Features
- Non-intrusive: only enhancements are made without changes, and its introduction does not affect existing projects, as smooth as silk
- Low loss: the start will automatically inject the basic CURD, performance is basically no loss, direct object-oriented operation
- Powerful CRUD operations: built-in generic Mapper, just a small amount of configuration to achieve most CRUD operations, more powerful conditional constructors, to meet the needs of all kinds of use
- Support Lambda form call: Through Lambda expressions, it is convenient to write all kinds of query conditions, no longer worry about writing the wrong segment of the field
- Support for automatic primary key generation: Support for two primary key strategies, freely configurable, the perfect solution to the primary key problem
- Support ActiveRecord mode: Support ActiveRecord form of invocation, entity classes only need to inherit Model class can be powerful CRUD operations
- Support for custom global generic operations: support for global generic 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 no additional configuration plug-in, write paging equivalent to ordinary List queries, and maintain the same paging and PageHelper plug-in return fields, without worrying about the impact of naming
- MySQL full coverage: MySQL supported features can be easily achieved through EE
- Support ES higher-order syntax: support for highlighting search, split-word query, weight query, Geo geolocation query, IP query, aggregation query and other higher-order syntax
- Good extensibility: the underlying layer still uses RestHighLevelClient, can maintain its extensibility, developers can use EE at the same time, but still use the functions of RestHighLevelClient
...
# framework architecture
framework architecture
# Code hosting
# Participate in contributing
Before the debut of Easy-Es, due to the high complexity of ES's own API, there was only one company on the market, SpringData, which was doing ES-ORM. The emergence of Easy-Es filled the vacancy of domestic ES-ORM for more than ten years, and the design concept of MP was natural. Better than SpringData, after long-term and unremitting efforts, we have firmly ranked first in the domestic ES-ORM market, but we are not satisfied with this. Our goal is to become the most popular ES-ORM in the world, so in We welcome all heroes to participate in improving Easy-Es. We look forward to your PR!
- Contribute code: code address Easy-ES (opens new window), welcome to submit Issue or Pull Requests
- Maintain the documentation: The documentation is located at Easy-ES (opens new window), welcome to participate in translation and revision