mirror of
https://gitee.com/dromara/easy-es.git
synced 2025-12-06 17:18:57 +08:00
158 lines
40 KiB
HTML
158 lines
40 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>与MP差异 | Easy-Es</title>
|
||
<meta name="generator" content="VuePress 1.9.7">
|
||
<link rel="icon" href="/img/logo.svg">
|
||
<script async="true" src="https://cdn.wwads.cn/js/makemoney.js" type="text/javascript"></script>
|
||
<script>
|
||
// 万维广告“禁止”广告拦截
|
||
// function called if wwads is blocked
|
||
// https://github.com/bytegravity/whitelist-wwads
|
||
function ABDetected() {
|
||
var adBlockDetected_div = document.createElement("div");
|
||
document.body.appendChild(adBlockDetected_div);
|
||
var navbar = document.querySelector(".navbar");
|
||
navbar.style.cssText="transition:top 300ms;top:33px";
|
||
adBlockDetected_div.style.cssText = "position: fixed; top: 0; left: 0; width: 100%; background: #E01E5A; color: #fff; z-index: 9999999999; font-size: 14px; text-align: center; line-height: 1.5; font-weight: bold; padding-top: 6px; padding-bottom: 6px;";
|
||
adBlockDetected_div.innerHTML = "我们的广告服务商 <a style='color:#fff;text-decoration:underline' target='_blank' href='https://wwads.cn/page/end-user-privacy'>并不跟踪您的隐私</a>,为了支持本站的长期运营,请将我们的网站 <a style='color: #fff;text-decoration:underline' target='_blank' href='https://wwads.cn/page/whitelist-wwads'>加入广告拦截器的白名单</a>。";
|
||
document.getElementsByTagName("body")[0].appendChild(adBlockDetected_div);
|
||
// add a close button to the right side of the div
|
||
var adBlockDetected_close = document.createElement("div");
|
||
adBlockDetected_close.style.cssText = "position: absolute; top: 0; right: 10px; width: 30px; height: 30px; background: #E01E5A; color: #fff; z-index: 9999999999; line-height: 30px; cursor: pointer;";
|
||
adBlockDetected_close.innerHTML = "×";
|
||
adBlockDetected_div.appendChild(adBlockDetected_close);
|
||
// add a click event to the close button
|
||
adBlockDetected_close.onclick = function() {
|
||
this.parentNode.parentNode.removeChild(this.parentNode);
|
||
navbar.style.cssText="transition:top 300ms;top:0";
|
||
};
|
||
}
|
||
|
||
function vote() {
|
||
var voteDetected_div = document.createElement("div");
|
||
voteDetected_div.style.cssText = "position: absolute; top: 0; left: 0; width: 100%; background: #7bbfea; color: #fff; z-index: 9999999999; font-size: 14px; text-align: center; line-height: 1.5; font-weight: bold; padding-top: 6px; padding-bottom: 6px;";
|
||
voteDetected_div.innerHTML = "<a style='color:#fff;text-decoration:underline' target='_blank' href='xxxxxx'>LiteFlow 正在参与“2021年度 OSC 中国开源项目”评选,请为我们投上宝贵的一票,谢谢!</a>";
|
||
document.getElementsByTagName("body")[0].appendChild(voteDetected_div);
|
||
voteDetected_div.onclick = function() {
|
||
this.remove();
|
||
};
|
||
}
|
||
|
||
function docReady(t) {
|
||
"complete" === document.readyState ||
|
||
"interactive" === document.readyState
|
||
? setTimeout(t, 1)
|
||
: document.addEventListener("DOMContentLoaded", t);
|
||
}
|
||
|
||
//check if wwads' fire function was blocked after document is ready with 3s timeout (waiting the ad loading)
|
||
docReady(function () {
|
||
setTimeout(function () {
|
||
if( window._AdBlockInit === undefined ){
|
||
ABDetected();
|
||
}
|
||
}, 3000);
|
||
});
|
||
</script>
|
||
<meta name="description" content="傻瓜级ElasticSearch搜索引擎ORM框架">
|
||
<meta name="keywords" content="liteflow,liteflow官网,规则引擎,流程引擎,开源,java规则引擎,rule engine,open source">
|
||
<meta name="theme-color" content="#11a8cd">
|
||
<meta name="wwads-cn-verify" content="6c4b761a28b734fe93831e3fb400ce87">
|
||
|
||
<link rel="preload" href="/assets/css/0.styles.6ef972f0.css" as="style"><link rel="preload" href="/assets/js/app.a043ea6c.js" as="script"><link rel="preload" href="/assets/js/2.b31e9563.js" as="script"><link rel="preload" href="/assets/js/33.c9d3e92a.js" as="script"><link rel="prefetch" href="/assets/js/10.19174b1e.js"><link rel="prefetch" href="/assets/js/11.894186b9.js"><link rel="prefetch" href="/assets/js/12.db605a96.js"><link rel="prefetch" href="/assets/js/13.b73cdb41.js"><link rel="prefetch" href="/assets/js/14.cf6889a0.js"><link rel="prefetch" href="/assets/js/15.00fe4aad.js"><link rel="prefetch" href="/assets/js/16.aaeacd30.js"><link rel="prefetch" href="/assets/js/17.18f91003.js"><link rel="prefetch" href="/assets/js/18.85a6012d.js"><link rel="prefetch" href="/assets/js/19.52abe221.js"><link rel="prefetch" href="/assets/js/20.5efd1216.js"><link rel="prefetch" href="/assets/js/21.b01e3dd8.js"><link rel="prefetch" href="/assets/js/22.19b7c6e9.js"><link rel="prefetch" href="/assets/js/23.61a37b77.js"><link rel="prefetch" href="/assets/js/24.c9fd2023.js"><link rel="prefetch" href="/assets/js/25.9f47cc67.js"><link rel="prefetch" href="/assets/js/26.d92123f2.js"><link rel="prefetch" href="/assets/js/27.26ed9a0f.js"><link rel="prefetch" href="/assets/js/28.27718b27.js"><link rel="prefetch" href="/assets/js/29.c587dc8e.js"><link rel="prefetch" href="/assets/js/3.9bed2644.js"><link rel="prefetch" href="/assets/js/30.bdf6c7e1.js"><link rel="prefetch" href="/assets/js/31.1f034574.js"><link rel="prefetch" href="/assets/js/32.9efe4239.js"><link rel="prefetch" href="/assets/js/34.082b3bdd.js"><link rel="prefetch" href="/assets/js/35.9b536766.js"><link rel="prefetch" href="/assets/js/36.538f4cab.js"><link rel="prefetch" href="/assets/js/37.ec29b472.js"><link rel="prefetch" href="/assets/js/38.345c3a98.js"><link rel="prefetch" href="/assets/js/39.3bd0ce3e.js"><link rel="prefetch" href="/assets/js/4.ff5881ba.js"><link rel="prefetch" href="/assets/js/40.38eac996.js"><link rel="prefetch" href="/assets/js/41.21fb6cbc.js"><link rel="prefetch" href="/assets/js/42.269bed85.js"><link rel="prefetch" href="/assets/js/43.ba49c91c.js"><link rel="prefetch" href="/assets/js/44.0ef92d59.js"><link rel="prefetch" href="/assets/js/45.ac944d9e.js"><link rel="prefetch" href="/assets/js/5.a45d370b.js"><link rel="prefetch" href="/assets/js/6.88a99593.js"><link rel="prefetch" href="/assets/js/7.50f14e69.js"><link rel="prefetch" href="/assets/js/8.36c9d6e9.js"><link rel="prefetch" href="/assets/js/9.54eecf7f.js">
|
||
<link rel="stylesheet" href="/assets/css/0.styles.6ef972f0.css">
|
||
</head>
|
||
<body class="theme-mode-light">
|
||
<div id="app" data-server-rendered="true"><div class="theme-container sidebar-open have-rightmenu"><header class="navbar blur"><div title="目录" class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/img/logo.png" alt="Easy-Es" class="logo"> <span class="site-name can-hide">Easy-Es</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link">首页</a></div><div class="nav-item"><a href="/pages/ec7460/" class="nav-link">文档</a></div><div class="nav-item"><a href="/pages/fb599d/" class="nav-link">💖支持</a></div><div class="nav-item"><a href="/pages/1a819d/" class="nav-link">🌻生态</a></div><div class="nav-item"><a href="/pages/55wa9d/" class="nav-link">🚀关于项目</a></div><div class="nav-item"><a href="/pages/kd129d/" class="nav-link">加入社区讨论</a></div><div class="nav-item"><a href="/pages/7d828w/" class="nav-link">参与贡献</a></div><div class="nav-item"><a href="/pages/6f829d/" class="nav-link">谁在使用</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="💞推荐" class="dropdown-title"><!----> <span class="title" style="display:;">💞推荐</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://gitee.com/easy-es/fit-plan" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
健身计划一键生成系统
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div><div class="nav-item"><a href="https://gitee.com/dromara/easy-es" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
Gitee
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://github.com/dromara/easy-es" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
Github
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="💫语言选择" class="dropdown-title"><!----> <span class="title" style="display:;">💫语言选择</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://easy-es.cn" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
简体中文
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://en.easy-es.cn" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
English
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <div class="sidebar-hover-trigger"></div> <aside class="sidebar" style="display:none;"><!----> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link">首页</a></div><div class="nav-item"><a href="/pages/ec7460/" class="nav-link">文档</a></div><div class="nav-item"><a href="/pages/fb599d/" class="nav-link">💖支持</a></div><div class="nav-item"><a href="/pages/1a819d/" class="nav-link">🌻生态</a></div><div class="nav-item"><a href="/pages/55wa9d/" class="nav-link">🚀关于项目</a></div><div class="nav-item"><a href="/pages/kd129d/" class="nav-link">加入社区讨论</a></div><div class="nav-item"><a href="/pages/7d828w/" class="nav-link">参与贡献</a></div><div class="nav-item"><a href="/pages/6f829d/" class="nav-link">谁在使用</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="💞推荐" class="dropdown-title"><!----> <span class="title" style="display:;">💞推荐</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://gitee.com/easy-es/fit-plan" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
健身计划一键生成系统
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div><div class="nav-item"><a href="https://gitee.com/dromara/easy-es" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
Gitee
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://github.com/dromara/easy-es" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
Github
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="💫语言选择" class="dropdown-title"><!----> <span class="title" style="display:;">💫语言选择</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://easy-es.cn" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
简体中文
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://en.easy-es.cn" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
English
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>快速入门</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/pages/ec7460/" class="sidebar-link">简介</a></li><li><a href="/pages/258e80/" class="sidebar-link">适用场景</a></li><li><a href="/pages/6e2197/" class="sidebar-link">顾虑粉碎</a></li><li><a href="/pages/0867bd/" class="sidebar-link">避坑指南</a></li><li><a href="/pages/949ac4/" class="sidebar-link">快速开始</a></li><li><a href="/pages/12283a/" class="sidebar-link">springboot集成demo</a></li><li><a href="/pages/9a3e4c/" class="sidebar-link">配置</a></li><li><a href="/pages/4eb7db/" class="sidebar-link">注解</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>核心功能</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/pages/06b5d9/" class="sidebar-link">索引处理</a></li><li><a href="/pages/c5999a/" class="sidebar-link">CRUD接口</a></li><li><a href="/pages/1cebb8/" class="sidebar-link">条件构造器</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>拓展功能</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/pages/a19563/" class="sidebar-link">混合查询</a></li><li><a href="/pages/4446a5/" class="sidebar-link">原生查询</a></li><li><a href="/pages/0cf11e/" class="sidebar-link">分页查询</a></li><li><a href="/pages/05702c/" class="sidebar-link">嵌套类型</a></li><li><a href="/pages/0bbd7e/" class="sidebar-link">父子类型</a></li><li><a href="/pages/981130/" class="sidebar-link">获取DSL语句</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>高阶语法</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/pages/c9c57f/" class="sidebar-link">查询字段过滤</a></li><li><a href="/pages/274da8/" class="sidebar-link">排序</a></li><li><a href="/pages/b508b3/" class="sidebar-link">聚合查询</a></li><li><a href="/pages/2688d1/" class="sidebar-link">分词查询</a></li><li><a href="/pages/e6fc8d/" class="sidebar-link">权重</a></li><li><a href="/pages/899c12/" class="sidebar-link">高亮查询</a></li><li><a href="/pages/39b41e/" class="sidebar-link">GEO地理位置查询</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>插件</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/pages/6431d1/" class="sidebar-link">插件</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>其它</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/pages/453119/" class="sidebar-link">问答</a></li><li><a href="/pages/98d3d3/" aria-current="page" class="active sidebar-link">与MP差异</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header level2"><a href="/pages/98d3d3/#_1-命名差异" class="sidebar-link">1.命名差异</a></li><li class="sidebar-sub-header level2"><a href="/pages/98d3d3/#_2-移除了service" class="sidebar-link">2.移除了Service</a></li><li class="sidebar-sub-header level2"><a href="/pages/98d3d3/#_3-方法差异" class="sidebar-link">3.方法差异</a></li></ul></li><li><a href="/pages/6fea40/" class="sidebar-link">MySQL和EE语法对比</a></li><li><a href="/pages/b65406/" class="sidebar-link">更新日志</a></li><li><a href="/pages/e14b42/" class="sidebar-link">更新计划</a></li><li><a href="/pages/796d01/" class="sidebar-link">版权</a></li><li><a href="/pages/4d7703/" class="sidebar-link">鸣谢</a></li></ul></section></li></ul> </aside> <div><main class="page"><div class="theme-vdoing-wrapper "><div class="articleInfo-wrap" data-v-06225672><div class="articleInfo" data-v-06225672><ul class="breadcrumbs" data-v-06225672><li data-v-06225672><a href="/" title="首页" class="iconfont icon-home router-link-active" data-v-06225672></a></li> <li data-v-06225672><span data-v-06225672>0.0</span></li><li data-v-06225672><span data-v-06225672>其它</span></li></ul> <div class="info" data-v-06225672><div title="作者" class="author iconfont icon-touxiang" data-v-06225672><a href="https://gitee.com/easy-es/" target="_blank" title="作者" class="beLink" data-v-06225672>老汉</a></div> <div title="创建时间" class="date iconfont icon-riqi" data-v-06225672><a href="javascript:;" data-v-06225672>2022-06-21</a></div> <!----></div></div></div> <!----> <div class="content-wrapper"><div class="right-menu-wrapper"><div class="right-menu-margin"><div class="right-menu-title">目录</div> <div class="right-menu-content"></div></div></div> <h1><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAABKFJREFUSA3tVl1oFVcQnrMbrak3QUgkya1akpJYcrUtIqW1JvFBE9LiQ5v6JmJpolbMg32rVrhgoYK0QiMY6i9Y6EMaW5D+xFJaTYItIuK2Kr3+BJNwkxBj05sQY3b3nM6cs2dv9t7NT/vQJw/sndk5M/PNzJkzewGerP+pAmy+ON8lLzUJgA8ZYxYIYZmGYRnctDaWvJJAmTtfP1pvXsBCCPP8QFcCaRkZYACgDZFO4stNIcBCajEOlmmC9XpJ9bAGCaPaPmzPl32dvLSVu3BWCTQs0XQQ6g0DYgwLIoAZbBCdW/i+781o1VVlm/410mw4h06Y7bIPHNyWDyL4FHkX03Q8SrzNhZTZriieckWt7cL6MM85YcLpsi/7O9/iXFT6MswI0DmmpkSaJ0qLxFIm3+i1THHB3zmBH3PYx9CcykcLOeQVVa7QtdxTgQgEleX2AjHYfwA+2ddV77ruGoJUbhGDI09YSNXyMpUt5ylOzxgbUmtOp7NmbNt8v3arjTBfYELmLUV+M+nSawNNAUqpT3ClJWg5I3BLT+cGW/DXNGCa6tx1aakCGEigArTn4TDIPdrXXYKCZNrHLMCOEPvHBlLQ99s9eHB7EB6NTki73CVPQ2F5MSx/uRQixfmq7rK0wYD8w8E905bnPDfwoWs/rfv93NWN/ZfvwsLIU7A09gxECyISeGJkHAau98L97tuw7NXnoPyNF8FcYGLGKsOs0mN3OEyec9esGW/ZEl945dTP34wlR2FZVQWU1q0Cw8Tr7p+hgLLNL0FPxx/Q35mA8aEUrH6nCgwEl0tn7wUiZYJnNRh6DK4UH/k0lfyrsBKdPVv/AriGIQcEDQZ65LBAGe2Rzui9Ybjz7XUppz1/uKBbyVPGkN3ZAeC6hr0x7Nr38N5+EqkoOm17xpoqR9ohQF55ERSvr4Dkr3chNfC3DMzGJlNBElW8w9nsGQvhNGIzDkXzCg8cLK951xHsFBlTJspJNi3ZFIMF2AeDV3q8DNOB+YHi6QTrChDIWDBRi5U5f+ZMfJLu3ccrqxtdxk4SKH336LFxSmkqefwU5T8fhdSdQf9IVKD6aNiwI/hnmcAZ91isYMJIaCUCx9W098+LgruikeTqzqqxKPUwqJyCPJiyemVVZBOijDGjD38Os0jOiSPL1z3SPjXNANbiNPXAdzTfukjjuknNBbyz3nwgTd3AVFqUJ5hpHlq9MveLnWwttUfoygBmvVjuikxND3znrhsELnZk7k+OjIGxeNEkomyLVta0xxn+HZhjBc4YZ/AFjHjz9u3xRZl2BN4aq9nFwWh16IrQ1aHHEd3j1+4/dB9OtH4e29A2H1DyHQRmOSfQZ1Fy7MHBTGB6J/Djq6p3OxyO2cB+4Car7v/o3GXgfAkj23+x9ID1Teoamo/SXcbvSf2PX7Vc8DdCmE1vN9di+32P9/5YR3vLnhCVGUWBjEkr3yh4H8v9CzmsbdhzOKzsJKM90iFdaTMjRPhGVsakRvOaRidljo6H6G7j+ctrJpsP+4COhDIl0La2+FS4+5mlocBaXY5QnGZysIBYoeSsl5qQzrSj/cgNrfuEzlWBfwA+EjrZyWUvpAAAAABJRU5ErkJggg==">与MP差异<!----></h1> <div class="page-slot page-slot-top">
|
||
<div class="wwads-cn wwads-horizontal page-ad" data-id="129" style="width:100%;max-height:80px;min-height:auto;"></div>
|
||
<style>
|
||
.page-ad img{
|
||
width:80px!important;
|
||
}
|
||
.wwads-horizontal .wwads-content{
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
.wwads-horizontal .wwads-text, .wwads-content .wwads-text{
|
||
line-height:1;
|
||
flex: 1;
|
||
height: 100%;
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
.wwads-horizontal .wwads-poweredby, .wwads-vertical .wwads-poweredby{display: none;!important;}
|
||
</style>
|
||
</div> <div class="theme-vdoing-content content__default"><div class="custom-block tip"><p class="custom-block-title">提示</p> <p>为了减少开发者的额外学习负担,我们尽量保持了和MP几乎一致的语法,但为了避免歧义,仍有个别地方存在些许差异,毕竟ES和MySQL有很多地方不一样,无论如何,在你看完这些差异和原因后,你肯定也会赞同这种差异存在的必要性.</p></div> <h2 id="_1-命名差异"><a href="#_1-命名差异" class="header-anchor">#</a> 1.命名差异</h2> <p>为了区别MP的命名带来的歧义问题,以下三处命名中我们加了Es字母区别于MP:</p> <table><thead><tr><th></th> <th>MP</th> <th>EE</th> <th>差异原因</th></tr></thead> <tbody><tr><td>启动类注解</td> <td>@MapperScan("xxx")</td> <td>@EsMapperScan("xxx")</td> <td>一个项目中可能会同时用到MP和EE,避免同一系统中同时引入同名注解时,需要加全路径区分</td></tr> <tr><td>父类Mapper命名</td> <td><code>BaseMapper<T></code></td> <td><code>BaseEsMapper<T></code></td> <td>一个项目中可能会同时用到MP和EE,避免继承时误继承到MP的Mapper</td></tr> <tr><td>条件构造器命名</td> <td>LambdaQueryWrapper</td> <td>LambdaEsQueryWrapper</td> <td>一个项目中可能会同时用到MP和EE,避免错误创建条件构造器</td></tr></tbody></table> <h2 id="_2-移除了service"><a href="#_2-移除了service" class="header-anchor">#</a> 2.移除了Service</h2> <p>MP中引入了Service层,但EE中并无Service层,因为我个人认为MP的Service层太重了,不够灵活,实际开发中基本不用,被很多人吐槽,所以EE中我直接去掉了Service层,在使用过程中你无需像MP那样继承ISevice,另外我把一些高频使用的service层封装的方法下沉到了mapper层,比如批量更新,批量新增等,大家可以在调用基类Mapper层中的方法时看到,灵活且不失优雅.</p> <h2 id="_3-方法差异"><a href="#_3-方法差异" class="header-anchor">#</a> 3.方法差异</h2> <p>group by 聚合在EE中使用groupBy方法时,调用查询接口必须使用获取原生返回内容,不能像MP中一样返回泛型T,这点是由于ES和MySQL的差导致的,所以需要特别注意</p> <div class="language-java line-numbers-mode"><pre class="language-java"><code>
|
||
<span class="token class-name">LambdaEsUpdateWrapper</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">T</span><span class="token punctuation">></span></span> wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LambdaEsUpdateWrapper</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
wrapper<span class="token punctuation">.</span><span class="token function">groupBy</span><span class="token punctuation">(</span><span class="token class-name">T</span><span class="token operator">::</span><span class="token function">getField</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
<span class="token comment">// MP语法</span>
|
||
<span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">T</span><span class="token punctuation">></span></span> list <span class="token operator">=</span> xxxMapper<span class="token punctuation">.</span><span class="token function">selectList</span><span class="token punctuation">(</span>wrapper<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token comment">// EE语法</span>
|
||
<span class="token class-name">SearchResponse</span> response <span class="token operator">=</span> xxxMapper<span class="token punctuation">.</span><span class="token function">search</span><span class="token punctuation">(</span>wrapper<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br></div></div><p>因为Es会把聚合的结果单独放到aggregations对象中,但原来的实体对象中并无此字段,所以我们需要用SearchResponse接收查询返回的结果,我们所需要的所有查询信息都可以从SearchResponse中获取.</p> <div class="language-json line-numbers-mode"><pre class="language-json"><code><span class="token property">"aggregations"</span><span class="token operator">:</span><span class="token punctuation">{</span><span class="token property">"sterms#creator"</span><span class="token operator">:</span><span class="token punctuation">{</span><span class="token property">"doc_count_error_upper_bound"</span><span class="token operator">:</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token property">"sum_other_doc_count"</span><span class="token operator">:</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token property">"buckets"</span><span class="token operator">:</span><span class="token punctuation">[</span><span class="token punctuation">{</span><span class="token property">"key"</span><span class="token operator">:</span><span class="token string">"老汉"</span><span class="token punctuation">,</span><span class="token property">"doc_count"</span><span class="token operator">:</span><span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token punctuation">{</span><span class="token property">"key"</span><span class="token operator">:</span><span class="token string">"老王"</span><span class="token punctuation">,</span><span class="token property">"doc_count"</span><span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
|
||
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>移除了几个我目前还没看到使用场景的方法:</p> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token function">having</span><span class="token punctuation">(</span><span class="token class-name">String</span> sqlHaving<span class="token punctuation">,</span> <span class="token class-name">Object</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> params<span class="token punctuation">)</span>
|
||
<span class="token function">having</span><span class="token punctuation">(</span><span class="token keyword">boolean</span> condition<span class="token punctuation">,</span> <span class="token class-name">String</span> sqlHaving<span class="token punctuation">,</span> <span class="token class-name">Object</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> params<span class="token punctuation">)</span>
|
||
<span class="token function">func</span><span class="token punctuation">(</span><span class="token class-name">Consumer</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Children</span><span class="token punctuation">></span></span> consumer<span class="token punctuation">)</span>
|
||
<span class="token function">func</span><span class="token punctuation">(</span><span class="token keyword">boolean</span> condition<span class="token punctuation">,</span> <span class="token class-name">Consumer</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Children</span><span class="token punctuation">></span></span> consumer<span class="token punctuation">)</span>
|
||
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div><p>新增了一些EE有但MP不支持的方法:</p> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token comment">// 索引创建相关</span>
|
||
<span class="token class-name">Boolean</span> <span class="token function">existsIndex</span><span class="token punctuation">(</span><span class="token class-name">String</span> indexName<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token class-name">Boolean</span> <span class="token function">createIndex</span><span class="token punctuation">(</span><span class="token class-name">LambdaEsIndexWrapper</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">T</span><span class="token punctuation">></span></span> wrapper<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token class-name">Boolean</span> <span class="token function">updateIndex</span><span class="token punctuation">(</span><span class="token class-name">LambdaEsIndexWrapper</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">T</span><span class="token punctuation">></span></span> wrapper<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token class-name">Boolean</span> <span class="token function">deleteIndex</span><span class="token punctuation">(</span><span class="token class-name">String</span> indexName<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
<span class="token comment">// 权重</span>
|
||
<span class="token function">function</span><span class="token punctuation">(</span>字段<span class="token punctuation">,</span> 值<span class="token punctuation">,</span> <span class="token class-name">Float</span> 权重值<span class="token punctuation">)</span>
|
||
|
||
<span class="token comment">// Geo 地理位置相关</span>
|
||
<span class="token function">geoBoundingBox</span><span class="token punctuation">(</span><span class="token class-name">R</span> column<span class="token punctuation">,</span> <span class="token class-name">GeoPoint</span> topLeft<span class="token punctuation">,</span> <span class="token class-name">GeoPoint</span> bottomRight<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token function">geoDistance</span><span class="token punctuation">(</span><span class="token class-name">R</span> column<span class="token punctuation">,</span> <span class="token class-name">Double</span> distance<span class="token punctuation">,</span> <span class="token class-name">DistanceUnit</span> distanceUnit<span class="token punctuation">,</span> <span class="token class-name">GeoPoint</span> centralGeoPoint<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token function">geoPolygon</span><span class="token punctuation">(</span><span class="token class-name">R</span> column<span class="token punctuation">,</span> <span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">GeoPoint</span><span class="token punctuation">></span></span> geoPoints<span class="token punctuation">)</span><span class="token function">geoShape</span><span class="token punctuation">(</span><span class="token class-name">R</span> column<span class="token punctuation">,</span> <span class="token class-name">String</span> indexedShapeId<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token function">geoShape</span><span class="token punctuation">(</span><span class="token class-name">R</span> column<span class="token punctuation">,</span> <span class="token class-name">String</span> indexedShapeId<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token function">geoShape</span><span class="token punctuation">(</span><span class="token class-name">R</span> column<span class="token punctuation">,</span> <span class="token class-name">Geometry</span> geometry<span class="token punctuation">,</span> <span class="token class-name">ShapeRelation</span> shapeRelation<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
<span class="token comment">// 其它...</span>
|
||
|
||
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br></div></div><p>除了需要注意以上列出的这些小差异,其余地方和MP并无明显差异,使用者完全可以像使用MP一样使用EE</p></div></div> <div class="page-edit"><div class="edit-link"><a href="https://github.com/xpc1024/easy-es-home-source/edit/master/docs/v1.0.0/060.其它/020.与MP差异.md" target="_blank" rel="noopener noreferrer">帮助我们改善此文档</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----> <div class="last-updated"><span class="prefix">上次更新:</span> <span class="time">2022/06/29, 09:26:41</span></div></div> <div class="page-nav-wapper"><div class="page-nav-centre-wrap"><a href="/pages/453119/" class="page-nav-centre page-nav-centre-prev"><div class="tooltip">问答</div></a> <a href="/pages/6fea40/" class="page-nav-centre page-nav-centre-next"><div class="tooltip">MySQL和EE语法对比</div></a></div> <div class="page-nav"><p class="inner"><span class="prev">
|
||
←
|
||
<a href="/pages/453119/" class="prev">问答</a></span> <span class="next"><a href="/pages/6fea40/">MySQL和EE语法对比</a>→
|
||
</span></p></div></div></div> <!----></main></div> <div class="footer"><div class="icons"><a href="mailto:xpc@dromara.com" title="Mail" target="_blank" class="iconfont icon-youjian"></a><a href="https://gitee.com/dromara/easy-es" title="Gitee" target="_blank" class="iconfont icon-gitee"></a><a href="https://github.com/dromara/easy-es" title="GitHub" target="_blank" class="iconfont icon-github"></a></div>
|
||
Theme by
|
||
<a href="https://github.com/xugaoyi/vuepress-theme-vdoing" target="_blank" title="本站主题">Vdoing</a>
|
||
| Copyright © 2022-2022
|
||
<span><a href="https://gitee.com/easy-es/">老汉</a>| MIT License</span></div> <div class="buttons"><div title="返回顶部" class="button blur go-to-top iconfont icon-fanhuidingbu" style="display:none;"></div> <div title="去评论" class="button blur go-to-comment iconfont icon-pinglun" style="display:none;"></div> <div title="主题模式" class="button blur theme-mode-but iconfont icon-zhuti"><ul class="select-box" style="display:none;"><li class="iconfont icon-zidong">
|
||
跟随系统
|
||
</li><li class="iconfont icon-rijianmoshi">
|
||
浅色模式
|
||
</li><li class="iconfont icon-yejianmoshi">
|
||
深色模式
|
||
</li><li class="iconfont icon-yuedu">
|
||
阅读模式
|
||
</li></ul></div></div> <!----> <!----> <!----></div><div class="global-ui"></div></div>
|
||
<script src="/assets/js/app.a043ea6c.js" defer></script><script src="/assets/js/2.b31e9563.js" defer></script><script src="/assets/js/33.c9d3e92a.js" defer></script>
|
||
</body>
|
||
</html>
|