├── .gitignore
├── .idea
├── $CACHE_FILE$
├── $PRODUCT_WORKSPACE_FILE$
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── compiler.xml
├── dictionaries
│ └── admin.xml
├── encodings.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── libraries
│ ├── Maven__ch_qos_logback_logback_classic_1_2_3.xml
│ ├── Maven__ch_qos_logback_logback_core_1_2_3.xml
│ ├── Maven__com_alibaba_druid_1_1_10.xml
│ ├── Maven__com_alibaba_fastjson_1_2_32.xml
│ ├── Maven__com_fasterxml_classmate_1_5_1.xml
│ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_1.xml
│ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_10_1.xml
│ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_10_1.xml
│ ├── Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_1.xml
│ ├── Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_1.xml
│ ├── Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_1.xml
│ ├── Maven__com_meizu_meizu_framework_datasource_1_2.xml
│ ├── Maven__com_zaxxer_HikariCP_3_4_1.xml
│ ├── Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml
│ ├── Maven__jakarta_validation_jakarta_validation_api_2_0_1.xml
│ ├── Maven__javax_servlet_javax_servlet_api_4_0_1.xml
│ ├── Maven__mysql_mysql_connector_java_5_1_39.xml
│ ├── Maven__org_apache_logging_log4j_log4j_api_2_8_2.xml
│ ├── Maven__org_apache_logging_log4j_log4j_to_slf4j_2_8_2.xml
│ ├── Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_29.xml
│ ├── Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_29.xml
│ ├── Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_29.xml
│ ├── Maven__org_elasticsearch_plugin_x_pack_sql_jdbc_6_5_2.xml
│ ├── Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml
│ ├── Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml
│ ├── Maven__org_mybatis_mybatis_3_4_5.xml
│ ├── Maven__org_mybatis_mybatis_spring_1_3_1.xml
│ ├── Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_1_3_2.xml
│ ├── Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_1_3_2.xml
│ ├── Maven__org_projectlombok_lombok_1_18_0.xml
│ ├── Maven__org_slf4j_jul_to_slf4j_1_7_25.xml
│ ├── Maven__org_slf4j_slf4j_api_1_7_25.xml
│ ├── Maven__org_springframework_boot_spring_boot_2_2_2_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_2_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_2_2_2_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_3_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_json_2_2_2_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_logging_2_2_2_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_2_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_validation_2_2_2_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_web_2_2_2_RELEASE.xml
│ ├── Maven__org_springframework_spring_aop_5_2_2_RELEASE.xml
│ ├── Maven__org_springframework_spring_beans_5_2_2_RELEASE.xml
│ ├── Maven__org_springframework_spring_context_5_2_2_RELEASE.xml
│ ├── Maven__org_springframework_spring_core_5_2_2_RELEASE.xml
│ ├── Maven__org_springframework_spring_expression_5_2_2_RELEASE.xml
│ ├── Maven__org_springframework_spring_jcl_5_2_2_RELEASE.xml
│ ├── Maven__org_springframework_spring_jdbc_5_2_2_RELEASE.xml
│ ├── Maven__org_springframework_spring_tx_5_2_2_RELEASE.xml
│ ├── Maven__org_springframework_spring_web_5_2_2_RELEASE.xml
│ ├── Maven__org_springframework_spring_webmvc_5_2_2_RELEASE.xml
│ └── Maven__org_yaml_snakeyaml_1_25.xml
├── misc.xml
├── modules.xml
└── workspace.xml
├── .mvn
└── wrapper
│ ├── MavenWrapperDownloader.java
│ └── maven-wrapper.properties
├── HELP.md
├── LICENSE
├── README.md
├── elastic-sql.iml
├── mvnw
├── mvnw.cmd
├── pom.xml
├── src
└── main
│ ├── java
│ └── com
│ │ └── es
│ │ └── elasticsql
│ │ ├── ElasticSqlApplication.java
│ │ ├── configuration
│ │ └── EsDruidDataSourceConfig.java
│ │ ├── controller
│ │ └── EsController.java
│ │ ├── entity
│ │ └── PeopleTest.java
│ │ ├── mapper
│ │ └── PeopleTestMapper.java
│ │ └── service
│ │ ├── EsService.java
│ │ └── impl
│ │ └── EsServiceImpl.java
│ └── resources
│ ├── application.yml
│ ├── config
│ └── elastic-mybatis.xml
│ ├── logback.xml
│ └── mybatis
│ └── PeopleTestMapper.xml
└── target
├── classes
├── META-INF
│ └── elastic-sql.kotlin_module
├── application.yml
├── config
│ └── elastic-mybatis.xml
├── logback.xml
└── mybatis
│ └── PeopleTestMapper.xml
└── test-classes
└── META-INF
└── elastic-sql.kotlin_module
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled class file
2 | *.class
3 |
4 | # Log file
5 | *.log
6 |
7 | # BlueJ files
8 | *.ctxt
9 |
10 | # Mobile Tools for Java (J2ME)
11 | .mtj.tmp/
12 |
13 | # Package Files #
14 | *.jar
15 | *.war
16 | *.nar
17 | *.ear
18 | *.zip
19 | *.tar.gz
20 | *.rar
21 |
22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
23 | hs_err_pid*
24 |
--------------------------------------------------------------------------------
/.idea/$CACHE_FILE$:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/$PRODUCT_WORKSPACE_FILE$:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/.idea/dictionaries/admin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_alibaba_druid_1_1_10.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_alibaba_fastjson_1_2_32.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_meizu_meizu_framework_datasource_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__javax_servlet_javax_servlet_api_4_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_39.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_8_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_8_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_29.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_29.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_29.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_elasticsearch_plugin_x_pack_sql_jdbc_6_5_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_mybatis_mybatis_3_4_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_1_3_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_1_3_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_projectlombok_lombok_1_18_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_3_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_aop_5_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_beans_5_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_context_5_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_core_5_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_expression_5_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_tx_5_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_web_5_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_2_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/workspace.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | C:\Users\admin\AppData\Roaming\Subversion
107 |
108 |
109 |
110 |
111 | 1577688735712
112 |
113 |
114 | 1577688735712
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 | file://$PROJECT_DIR$/src/main/java/com/es/elasticsql/service/impl/EsServiceImpl.java
129 | 31
130 |
131 |
132 |
133 | file://$PROJECT_DIR$/src/main/java/com/es/elasticsql/service/impl/EsServiceImpl.java
134 | 25
135 |
136 |
137 |
138 |
139 |
140 |
--------------------------------------------------------------------------------
/.mvn/wrapper/MavenWrapperDownloader.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012-2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import java.net.*;
18 | import java.io.*;
19 | import java.nio.channels.*;
20 | import java.util.Properties;
21 |
22 | public class MavenWrapperDownloader {
23 |
24 | private static final String WRAPPER_VERSION = "0.5.5";
25 | /**
26 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
27 | */
28 | private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
29 | + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
30 |
31 | /**
32 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
33 | * use instead of the default one.
34 | */
35 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
36 | ".mvn/wrapper/maven-wrapper.properties";
37 |
38 | /**
39 | * Path where the maven-wrapper.jar will be saved to.
40 | */
41 | private static final String MAVEN_WRAPPER_JAR_PATH =
42 | ".mvn/wrapper/maven-wrapper.jar";
43 |
44 | /**
45 | * Name of the property which should be used to override the default download url for the wrapper.
46 | */
47 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
48 |
49 | public static void main(String args[]) {
50 | System.out.println("- Downloader started");
51 | File baseDirectory = new File(args[0]);
52 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
53 |
54 | // If the maven-wrapper.properties exists, read it and check if it contains a custom
55 | // wrapperUrl parameter.
56 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
57 | String url = DEFAULT_DOWNLOAD_URL;
58 | if (mavenWrapperPropertyFile.exists()) {
59 | FileInputStream mavenWrapperPropertyFileInputStream = null;
60 | try {
61 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
62 | Properties mavenWrapperProperties = new Properties();
63 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
64 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
65 | } catch (IOException e) {
66 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
67 | } finally {
68 | try {
69 | if (mavenWrapperPropertyFileInputStream != null) {
70 | mavenWrapperPropertyFileInputStream.close();
71 | }
72 | } catch (IOException e) {
73 | // Ignore ...
74 | }
75 | }
76 | }
77 | System.out.println("- Downloading from: " + url);
78 |
79 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
80 | if (!outputFile.getParentFile().exists()) {
81 | if (!outputFile.getParentFile().mkdirs()) {
82 | System.out.println(
83 | "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
84 | }
85 | }
86 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
87 | try {
88 | downloadFileFromURL(url, outputFile);
89 | System.out.println("Done");
90 | System.exit(0);
91 | } catch (Throwable e) {
92 | System.out.println("- Error downloading");
93 | e.printStackTrace();
94 | System.exit(1);
95 | }
96 | }
97 |
98 | private static void downloadFileFromURL(String urlString, File destination) throws Exception {
99 | if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
100 | String username = System.getenv("MVNW_USERNAME");
101 | char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
102 | Authenticator.setDefault(new Authenticator() {
103 | @Override
104 | protected PasswordAuthentication getPasswordAuthentication() {
105 | return new PasswordAuthentication(username, password);
106 | }
107 | });
108 | }
109 | URL website = new URL(urlString);
110 | ReadableByteChannel rbc;
111 | rbc = Channels.newChannel(website.openStream());
112 | FileOutputStream fos = new FileOutputStream(destination);
113 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
114 | fos.close();
115 | rbc.close();
116 | }
117 |
118 | }
119 |
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
3 |
--------------------------------------------------------------------------------
/HELP.md:
--------------------------------------------------------------------------------
1 | # Getting Started
2 |
3 | ### Reference Documentation
4 | For further reference, please consider the following sections:
5 |
6 | * [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
7 | * [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.2.2.RELEASE/maven-plugin/)
8 |
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 使用ElasticSearch6.5白金版本从构建ELK、集群搭建到和Mybatis结合操作详细讲解
2 | #### 1.安装ElasticSearch6.5.1
3 |
4 | 使用的ElasticSearch版本为6.5.1,如果我们需要使用JDBC来连接的话是需要到白金版以上的,请务必保证版本正确可用。
5 |
6 | ##### ①官网下载地址:
7 |
8 | ```java
9 | https://www.elastic.co/downloads/past-releases/elasticsearch-6-5-1
10 | ```
11 |
12 | ##### ②下载并解压tar包,修改配置文件elasticsearch.yml
13 |
14 | ```java
15 | // 进入/data/elasticsearch-6.5.1目录,使用编辑器:
16 | # vim elasticsearch.yml
17 | // 取消如下注释,并修改为当前主机地址:
18 | cluster.name: my-application
19 | node.name: node-1
20 | bootstrap.memory_lock: false
21 | network.host: 192.168.142.128
22 | http.port: 9200
23 | discovery.zen.ping.unicast.hosts: ["192.168.142.128"]
24 | discovery.zen.minimum_master_nodes: 1 #注意,如果是单节点,这里必须为1
25 | // 新增如下配置:
26 | transport.tcp.port: 9300
27 | transport.tcp.compress: true
28 | bootstrap.system_call_filter: false
29 | ```
30 |
31 | ##### ③新建一个用户admin(用户名随意)
32 |
33 | 出于安全考虑,elasticsearch默认不允许以root账号运行。
34 |
35 | ```
36 | 创建用户:useradd admin
37 | 设置密码:passwd admin
38 | 切换用户:su admin
39 | 添加权限:chown -R admin /data/elasticsearch-6.5.1
40 | ```
41 |
42 | ##### ④映射关系如下:
43 |
44 | | Mysql | Elasticsearch |
45 | | ------------------- | --------------------- |
46 | | Database | Index |
47 | | Table | Type |
48 | | Row | Document |
49 | | Column | Field |
50 | | Schema | Mapping |
51 | | Index | Everything is indexed |
52 | | SQL | Query DSL |
53 | | Select * from table | Get http:// |
54 | | Update table set | Put http:// |
55 |
56 | #### 2.索引的操作命令
57 |
58 | ##### ①建表(es的索引):
59 |
60 | ```java
61 | [PUT] http://192.168.142.128:9200/test
62 |
63 | 请求体:
64 | {
65 | "mappings": {
66 | "people_test": {
67 | "dynamic": "strict",
68 | "properties": {
69 | "id": {
70 | "type": "long"
71 | },
72 | "name": {
73 | "type": "text"
74 | },
75 | "age": {
76 | "type": "integer"
77 | },
78 | "createTime": {
79 | "type": "text"
80 | }
81 | }
82 | }
83 | }
84 | }
85 | ```
86 |
87 | ##### ②增加数据
88 |
89 | ```java
90 | [POST] http://192.168.142.128:9200/test/people_test/1
91 |
92 | 请求体:
93 |
94 | {
95 | "id": "1",
96 | "name": "投桃报李",
97 | "age": "18",
98 | "createTime": "99885552"
99 | }
100 | ```
101 |
102 | ##### ③删除索引
103 |
104 | ```java
105 | [DELETE] http://192.168.142.128:9200/test
106 | ```
107 |
108 | 增加数据的时候报异常:
109 |
110 | ```java
111 | {
112 | "error": {
113 | "root_cause": [
114 | {
115 | "type": "cluster_block_exception",
116 | "reason": "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"
117 | }
118 | ],
119 | "type": "cluster_block_exception",
120 | "reason": "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"
121 | },
122 | "status": 403
123 | }
124 | ```
125 |
126 | ##### 解决方法1:
127 |
128 | 运行命令:
129 |
130 | ```java
131 | curl -XPUT -H "Content-Type: application/json" http://192.168.142.128:9200/people_test/_settings -d '{"index.blocks.read_only_allow_delete": null}'
132 | ```
133 |
134 | ##### 解决方法2:
135 |
136 | 创建索引的时候指定:
137 |
138 | ```java
139 | {
140 | "settings":{
141 | "index":{
142 | "number_of_shards":"2",
143 | "number_of_replicas":"1",
144 | "blocks.read_only_allow_delete":"false"
145 | }
146 | }
147 | }
148 | ```
149 |
150 | 还有一种可能是当磁盘的使用率超过95%时,Elasticsearch为了防止节点耗尽磁盘空间,自动将索引设置为只读模式。
151 |
152 | 1、最简单也是最直接的是清理磁盘空间
153 | 2、更改elasticsearch.yml配置文件,在config/elasticsearch.yml中增加下面这句话
154 |
155 | ```shell
156 | cluster.routing.allocation.disk.watermark.flood_stage: 99%
157 | ```
158 |
159 | 这是把控制洪水阶段水印设置为99%,你也可以自己设置其他百分比,默认是95%。
160 | 3、更改elasticsearch.yml配置文件,在config/elasticsearch.yml中增加下面这句话
161 |
162 | ```shell
163 | cluster.routing.allocation.disk.threshold_enabled: false
164 | ```
165 |
166 | 默认为true。设置为false禁用磁盘分配决策程序。
167 | 上面无论哪一种方法修改之后,都需要重启elasticsearch,然后再把索引的read_only_allow_delete设置为false,采用一中的方法中的任意一种即可,更改后再查看索引的信息,如图,read_only_allow_delete配置没有了,表示以及设置成功了。
168 |
169 |
170 |
171 | #### 3.相关问题与解决方案:
172 |
173 | ##### ①启动报内存不足等问题:
174 |
175 | 1、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
176 |
177 | 每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
178 |
179 | ```shell
180 | ulimit -Hn
181 | ulimit -Sn
182 | ```
183 |
184 | 修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效
185 |
186 | ```shell
187 | * soft nofile 65536
188 | * hard nofile 65536
189 | ```
190 |
191 | 2、max number of threads [3818] for user [es] is too low, increase to at least [4096]
192 |
193 | 问题同上,最大线程个数太低。修改配置文件/etc/security/limits.conf(和问题1是一个文件),增加配置
194 |
195 | ```shell
196 | * soft nproc 4096
197 | * hard nproc 4096
198 | ```
199 |
200 | 可通过命令查看
201 |
202 | ```shell
203 | ulimit -Hu
204 | ulimit -Su
205 | ```
206 |
207 | 3、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
208 |
209 | 修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144
210 |
211 | ```shell
212 | vi /etc/sysctl.conf
213 | sysctl -p
214 | ```
215 |
216 | 执行命令sysctl -p生效
217 |
218 | 4、Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/elasticsearch/elasticsearch-6.2.2-1/config/jvm.options
219 |
220 | elasticsearch用户没有该文件夹的权限,执行命令
221 |
222 | ```shell
223 | chown -R es:es /usr/local/elasticsearch/
224 | ```
225 |
226 | 无法用root启动
227 |
228 | ```java
229 | 新建非root用户,如admin
230 | useradd admin
231 | chmod 777 -R elasticsearch
232 | ```
233 |
234 | ##### ②启动命令:
235 |
236 | ElasticSearch的bin目录下面:
237 |
238 | ```java
239 | 启动命令有两种:
240 | ./elasticsearch 前台启动方式 会在下面打印日志
241 | ./elasticsearch -d 后台的启动方式
242 | ```
243 |
244 | #####
245 |
246 | #### 4.使用SpringBoot连接ElasticSearch-sql+mybatis的操作:
247 |
248 | ##### ①新建SpringBoot项目
249 |
250 | ##### POM依赖如下:
251 |
252 | ```java
253 |
254 |
256 | 4.0.0
257 |
258 | org.springframework.boot
259 | spring-boot-starter-parent
260 | 2.2.2.RELEASE
261 |
262 |
263 | com.es
264 | elastic-sql
265 | 0.0.1-SNAPSHOT
266 | elastic-sql
267 | Demo project for Spring Boot
268 |
269 |
270 | 1.8
271 | UTF-8
272 | UTF-8
273 | 1.8
274 | 2.8.2
275 | 1.7.25
276 | 1.1.10
277 | 5.0.2.RELEASE
278 |
279 |
280 |
281 |
282 |
283 | org.elasticsearch.plugin
284 | x-pack-sql-jdbc
285 | 6.5.2
286 |
287 |
288 |
289 |
290 |
291 | org.mybatis.spring.boot
292 | mybatis-spring-boot-starter
293 | 1.3.2
294 |
295 |
296 |
297 | org.springframework.boot
298 | spring-boot-starter-logging
299 |
300 |
301 | org.mybatis
302 | mybatis
303 |
304 |
305 | org.mybatis
306 | mybatis-spring
307 |
308 |
309 |
310 |
311 | mysql
312 | mysql-connector-java
313 | 5.1.39
314 |
315 |
316 | org.mybatis
317 | mybatis
318 | 3.4.5
319 |
320 |
321 | org.mybatis
322 | mybatis-spring
323 | 1.3.1
324 |
325 |
326 | com.alibaba
327 | druid
328 | ${druid.version}
329 |
330 |
331 |
332 |
333 | javax.servlet
334 | javax.servlet-api
335 |
336 |
337 |
338 | org.springframework.boot
339 | spring-boot-starter
340 |
341 |
342 |
343 | org.springframework.boot
344 | spring-boot-starter-web
345 |
346 |
347 |
348 |
349 | org.projectlombok
350 | lombok
351 | 1.18.0
352 |
353 |
354 |
355 | com.alibaba
356 | fastjson
357 | 1.2.32
358 |
359 |
360 |
361 |
362 | org.springframework.boot
363 | spring-boot-starter-jdbc
364 | 2.1.3.RELEASE
365 |
366 |
367 |
368 |
369 |
370 |
371 | elastic.co
372 | https://artifacts.elastic.co/maven
373 |
374 |
375 |
376 |
377 |
378 |
379 | org.springframework.boot
380 | spring-boot-maven-plugin
381 |
382 |
383 |
384 |
385 |
386 |
387 | ```
388 |
389 | ##### YML文件:
390 |
391 | ```java
392 | spring:
393 | datasource:
394 | es:
395 | url: jdbc:es://http://192.168.142.128:9200
396 | driver-class-name: org.elasticsearch.xpack.sql.jdbc.jdbc.JdbcDriver
397 | mapperLocations: classpath*:/mybatis/*.xml
398 | configLocation: classpath:/config/elastic-mybatis.xml
399 | ```
400 |
401 | ##### loback.xml:
402 |
403 | ```java
404 |
405 |
406 |
407 |
408 |
409 | %d [%t] [%c] [%p] (%file:%line\)- %m%n
410 | UTF-8
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 |
434 |
435 | /data/log/jetty/automarket-server.log
436 | true
437 |
438 |
439 | INFO
440 | ACCEPT
441 | DENY
442 |
443 |
444 | /data/log/jetty/automarket-server.log.%d
445 | 30
446 |
447 |
448 |
449 | [%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n
450 | UTF-8
451 |
452 |
453 |
454 |
455 | /data/log/jetty/automarket-error.log
456 | true
457 |
458 |
459 | ERROR
460 | ACCEPT
461 | DENY
462 |
463 |
464 | /data/log/jetty/automarket-error.log.%d
465 | 7
466 |
467 |
468 |
469 | [%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n
470 | UTF-8
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 | ```
484 |
485 | ##### elastic-mybatis.xml:
486 |
487 | ```java
488 |
489 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 | ```
502 |
503 | ##### EsDruidDataSourceConfig:
504 |
505 | ```java
506 | package com.es.elasticsql.configuration;
507 |
508 | import com.alibaba.druid.pool.DruidDataSource;
509 | import org.apache.ibatis.session.SqlSessionFactory;
510 | import org.mybatis.spring.SqlSessionFactoryBean;
511 | import org.mybatis.spring.annotation.MapperScan;
512 | import org.springframework.beans.factory.annotation.Qualifier;
513 | import org.springframework.beans.factory.annotation.Value;
514 | import org.springframework.context.annotation.Bean;
515 | import org.springframework.context.annotation.Configuration;
516 | import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
517 |
518 | import javax.sql.DataSource;
519 |
520 |
521 | /**
522 | * @program:
523 | * @description: es 数据源配置
524 | **/
525 | @Configuration
526 | @MapperScan(basePackages = {"com.es.elasticsql.mapper"}, sqlSessionFactoryRef = "esSqlSessionFactory")
527 | public class EsDruidDataSourceConfig {
528 |
529 | @Value("${spring.datasource.es.configLocation}")
530 | private String configLocation;
531 |
532 | @Value("${spring.datasource.es.mapperLocations}")
533 | private String bigdataMapperLocations;
534 |
535 | @Value("${spring.datasource.es.url}")
536 | private String esUrl;
537 |
538 | @Bean(name = "esDataSource")
539 | public DataSource esDataSource() {
540 | DruidDataSource dataSource = new DruidDataSource();
541 | dataSource.setDriverClassName("org.elasticsearch.xpack.sql.jdbc.jdbc.JdbcDriver");
542 | dataSource.setUrl(esUrl);
543 | return dataSource;
544 | }
545 |
546 | /**
547 | * SqlSessionFactory配置
548 | *
549 | * @return
550 | * @throws Exception
551 | */
552 | @Bean(name = "esSqlSessionFactory")
553 | public SqlSessionFactory bigdataSqlSessionFactory(@Qualifier("esDataSource") DataSource dataSource) throws Exception {
554 | SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
555 | sqlSessionFactoryBean.setDataSource(dataSource);
556 |
557 | PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
558 | //配置mapper文件位置
559 | sqlSessionFactoryBean.setMapperLocations(resolver.getResources(bigdataMapperLocations));
560 | sqlSessionFactoryBean.setConfigLocation(resolver.getResource(configLocation));
561 | return sqlSessionFactoryBean.getObject();
562 | }
563 | }
564 | ```
565 |
566 | 相关Git项目地址如下:
567 |
568 | ```java
569 | https://github.com/fengcharly/elasticsearch-sql-jdbc
570 | ```
571 |
572 | #### 5.部署Kibana
573 |
574 | ##### ①下载kibana插件
575 |
576 | https://artifacts.elastic.co/downloads/kibana/kibana-6.2.3-linux-x86_64.tar.gz
577 |
578 | ```java
579 | wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.3-linux-x86_64.tar.gz
580 | ```
581 |
582 | ##### ②解压到相应文件夹
583 |
584 | ```shell
585 | tar -zxvf kibana-6.2.3-linux-x86_64.tar.gz
586 | ```
587 |
588 | ##### ③在这里要注意版本号的问题
589 |
590 | 1、kibana和elsticserch版本不能差别大,否则无法正常使用 比如 Kibana 6.x 和 Elasticsearch 2.x不能正常使用
591 | 2、运行比Kibana更高版本的Elasticsearch通常可以工作 例如Kibana 5.0和Elasticsearch 5.1
592 | 3、小版本差异会有一些警告出现,除非两者升级到相同的版本
593 | 这是官方给出的说明: https://www.elastic.co/guide/en/kibana/current/setup.html
594 |
595 | ##### ④启动Kibanan
596 |
597 | ```shell
598 | ./bin/kibana
599 | ```
600 |
601 | 默认是前台启动的方式,我们在访问如下的网址的时候发现并不能访问,可以看到日志中有这么一句:
602 |
603 | ```java
604 | Server running at http://localhost:5601
605 | ```
606 |
607 | 外网是无法访问的,如果外网想访问,那需要修改一下server.host,我们放开端口
608 |
609 | ```java
610 | vim /data/kibana-6.2.3-linux-x86_64/config/kibana.yml
611 | ```
612 |
613 | 放开server.host,并修改如下:
614 |
615 | ```java
616 | server.port: 5601
617 | server.host: 0.0.0.0
618 | ```
619 |
620 | ##### ⑤kibana后台启动
621 |
622 | ```java
623 | nohup ./bin/kibana &
624 | ```
625 |
626 | ##### ⑥kibana目录结构
627 |
628 | - bin: 二进制脚本,包括 kibana 启动 Kibana 服务和 kibana-plugin 安装插件。
629 | - config: 配置文件,包括 kibana.yml 。
630 | - data: Kibana 和其插件写入磁盘的数据文件位置。
631 | - optimize: 编译过的源码。某些管理操作(如,插件安装)导致运行时重新编译源码。
632 | - plugins: 插件文件位置。每一个插件都有一个单独的二级目录。
633 |
634 | ##### ⑦windows下安装启用文档
635 |
636 | https://www.elastic.co/guide/en/kibana/current/windows.html
637 |
638 | ##### ⑧Kibana 配置文件 kibana.yml 简单说明
639 |
640 | | 配置 | 说明 |
641 | | ------------------------------------------------ | ------------------------------------------------------------ |
642 | | server.port : | 默认值 : 5601 Kibana 由后端服务器提供服务。此设置指定要使用的端口。 |
643 | | server.host : | 默认值 : “localhost” 此设置指定后端服务器的主机。 |
644 | | server.name : | 默认值 : “your-hostname” 用于标识此 Kibana 实例的可读的显示名称。 |
645 | | elasticsearch.url : | 默认值 : “http://localhost:9200” 要用于所有查询的 Elasticsearch 实例的 URL。 |
646 | | elasticsearch.pingTimeout | 日常用的ping,默认值 : 值 elasticsearch.tribe.requestTimeout 设置以毫秒为单位的时间等待 Elasticsearch 对 PING 作出响应。 |
647 | | elasticsearch.requestTimeout | 默认值 : 30000 等待来自后端或 Elasticsearch 的响应的时间(以毫秒为单位)。此值必须为正整数。 |
648 | | elasticsearch.username 和 elasticsearch.password | 如果您的 Elasticsearch 受基本认证保护,这些设置提供 Kibana 服务器用于在启动时对 Kibana 索引执行维护的用户名和密码。您的 Kibana 用户仍需要使用通过 Kibana 服务器代理的 Elasticsearch 进行身份验证。 |
649 |
650 | #### 6.集群部署
651 |
652 | 要配置集群,最简单的情况下,修改elasticsearch.yml,设置下面几个参数就可以了,注意开放9300端口:
653 |
654 | ```shell
655 | transport.tcp.port: 9300
656 | cluster.name: es-cluster
657 | node.name: es-node-1
658 | discovery.zen.ping.unicast.hosts: ["172.31.3.36","172.31.3.35"]
659 | discovery.zen.minimum_master_nodes: 1
660 | ```
661 |
662 | 如果报已存在的节点id,是因为复制虚拟机时,elsticsearch时,将elsticsearch文件夹下的data文件夹一并复制了。而在前面测试时,data文件夹下已经产生了data数据,于是报上面的错误。
663 |
664 | **解决办法:删除elsticsearch文件夹下的data文件夹下的节点数据**
665 |
666 | ```java
667 | 查看节点状态: /_cluster/health
668 | 如果是Green则代表配置正确
669 | ```
670 |
671 | #### 7.使用logstash导入mysql数据到elasticSearch
672 |
673 | Elasticsearch-jdbc工具包(废弃),虽然是官方推荐的,但是已经几年不更新了。所以选择安装logstash-input-jdbc,首选 logstash-input-jdbc,logstash5.X开始,已经至少集成了logstash-input-jdbc插件。所以,你如果使用的是logstash5.X,可以不必再安装,可以直接跳过这一步。
674 |
675 | ##### ①下载mysql-jdbc-driver.jar
676 |
677 | ##### 下载地址:
678 |
679 | ```
680 | jdbc连接mysql驱动的文件目录,可去官网下载:https://dev.mysql.com/downloads/connector/j/
681 | ```
682 |
683 | 此处我使用的jar的版本为:mysql-connector-java-5.1.46.jar.后面我们会把这个jar包放在logstash的config目录下面
684 |
685 |
686 | ##### ②下载logstash-6.3.0
687 |
688 | 下载命令:
689 |
690 | ```shell
691 | sudo wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.zip
692 | ```
693 |
694 | 解压命令:
695 |
696 | ```shell
697 | yum install -y unzip
698 | unzip logstash-6.3.0.zip
699 | ```
700 |
701 | ##### ③elasticSearch与数据库表的对应关系
702 |
703 | | ES | MYSQL |
704 | | :--- | :----------- |
705 | | 索引 | 数据库 |
706 | | 类型 | 数据表 |
707 | | 文档 | 数据表的一行 |
708 | | 属性 | 数据表的一列 |
709 |
710 | ##### ④建立测试数据表
711 |
712 | sql语句如下:
713 |
714 | ```sql
715 | DROP TABLE IF EXISTS `student`;
716 | CREATE TABLE `student` (
717 | `id` int(11) NOT NULL AUTO_INCREMENT,
718 | `name` varchar(255) DEFAULT NULL,
719 | `age` int(11) DEFAULT NULL,
720 | `update_time` datetime DEFAULT CURRENT_TIMESTAMP,
721 | PRIMARY KEY (`id`)
722 | ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4;
723 |
724 | -- ----------------------------
725 | -- Records of student
726 | -- ----------------------------
727 | INSERT INTO `student` VALUES ('1', '调度', '12', '2019-06-13 19:24:55');
728 | INSERT INTO `student` VALUES ('2', '李四', '13', '2019-06-13 19:24:55');
729 | INSERT INTO `student` VALUES ('3', '王五', '15', '2019-06-13 19:24:55');
730 | INSERT INTO `student` VALUES ('4', '赵六', '18', '2019-06-13 21:01:32');
731 | INSERT INTO `student` VALUES ('5', '的地方', '52', '2019-06-13 21:13:51');
732 | INSERT INTO `student` VALUES ('6', '测试', '45', '2019-06-13 21:17:31');
733 | ```
734 |
735 | 在logstatsh的目录下面建立my_logstash文件夹,里面建立myjdbc.conf:(这个仅供参考 实际不使用)
736 |
737 | ```shell
738 | input {
739 | jdbc {
740 | # mysql相关jdbc配置
741 | jdbc_connection_string => "jdbc:mysql://IP:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false"
742 | jdbc_user => "****"
743 | jdbc_password => "****"
744 |
745 | # jdbc连接mysql驱动的文件目录,可去官网下载:https://dev.mysql.com/downloads/connector/j/
746 | jdbc_driver_library => "./config/mysql-connector-java-5.1.46.jar"
747 | # the name of the driver class for mysql
748 | jdbc_driver_class => "com.mysql.jdbc.Driver"
749 | jdbc_paging_enabled => true
750 | jdbc_page_size => "50000"
751 |
752 | jdbc_default_timezone =>"Asia/Shanghai"
753 |
754 | # mysql文件, 也可以直接写SQL语句在此处,如下:
755 | #statement => "select * from student where update_time >= :sql_last_value"
756 | statement => "select * from student"
757 | # statement_filepath => "./config/jdbc.sql"
758 |
759 | # 这里类似crontab,可以定制定时操作,比如每分钟执行一次同步(分 时 天 月 年)
760 | schedule => "* * * * *"
761 | #type => "jdbc"
762 |
763 | # 是否记录上次执行结果, 如果为真,将会把上次执行到的 tracking_column 字段的值记录下来,保存到 last_run_metadata_path 指定的文件中
764 | #record_last_run => true
765 |
766 | # 是否需要记录某个column 的值,如果record_last_run为真,可以自定义我们需要 track 的 column 名称,此时该参数就要为 true. 否则默认 track 的是 timestamp 的值.
767 | use_column_value => true
768 |
769 | # 如果 use_column_value 为真,需配置此参数. track 的数据库 column 名,该 column 必须是递增的. 一般是mysql主键
770 | tracking_column => "update_time"
771 |
772 | tracking_column_type => "timestamp"
773 |
774 | last_run_metadata_path => "./logstash_capital_bill_last_id"
775 |
776 | # 是否清除 last_run_metadata_path 的记录,如果为真那么每次都相当于从头开始查询所有的数据库记录
777 | clean_run => false
778 |
779 | #是否将 字段(column) 名称转小写
780 | lowercase_column_names => false
781 | }
782 | }
783 |
784 | output {
785 | elasticsearch {
786 | hosts => "192.168.142.128:9200"
787 | index => "resource"
788 | user => "elastic"
789 | password => "elastic"
790 | document_id => "%{id}"
791 | template_overwrite => true
792 | }
793 |
794 | # 这里输出调试,正式运行时可以注释掉
795 | stdout {
796 | codec => json_lines
797 | }
798 | }
799 | ```
800 |
801 | 在logstash的config目录下面新建logstash-mysql.conf:
802 |
803 | ```shell
804 | input {
805 | jdbc {
806 | jdbc_driver_library => "/usr/local/logstash-6.3.0/config/mysql-connector-java-5.1.46.jar"
807 | jdbc_driver_class => "com.mysql.jdbc.Driver"
808 | jdbc_connection_string => "jdbc:mysql://192.168.142.128:3306/test?characterEncoding=UTF-8&useSSL=false"
809 | jdbc_user => "root"
810 | jdbc_password => "root"
811 | statement => "SELECT * FROM student WHERE update_time > :sql_last_value"
812 | jdbc_paging_enabled => "true"
813 | jdbc_page_size => "50000"
814 | schedule => "* * * * *"
815 | }
816 | }
817 |
818 | filter {
819 | json {
820 | source => "message"
821 | remove_field => ["message"]
822 | }
823 | }
824 |
825 | output {
826 | stdout {
827 | codec => rubydebug
828 | }
829 | elasticsearch {
830 | hosts => "192.168.142.128:9200"
831 | index => "student"
832 | user => "elastic"
833 | password => "elastic"
834 | }
835 | }
836 | ```
837 |
838 | 启动命令,开始导入数据:
839 |
840 | ```shell
841 | /data/logstash-6.3.0/bin/logstash -f /data/logstash-6.3.0/config/logstash-mysql.conf
842 | ```
843 |
844 | 后台运行:
845 |
846 | ```java
847 | nohup /data/logstash-6.3.0/bin/logstash -f /data/logstash-6.3.0/config/logstash-mysql.conf &
848 | ```
849 |
850 | #### 8.安装IK分词
851 |
852 | ##### ①git地址,直接运行如下命令:
853 |
854 | ```java
855 | bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.1/elasticsearch-analysis-ik-6.5.1.zip
856 | ```
857 |
858 | ##### ②在elasticsearch-6.5.0主目录下的plugins目录新建一个ik文件夹
859 |
860 | ##### ③解压上面的zip包到ik目录,重启es即可
861 |
862 | #### 9.设置JDBC连接密码
863 |
864 | ##### ①设置elasticsearch配置文件,然后重启elasticSearch
865 |
866 | ```java
867 | vim /data/elasticsearch-6.5.1/config/elasticsearch.yml
868 |
869 | -- 添加如下内容:
870 |
871 | http.cors.enabled: true
872 | http.cors.allow-origin: "*"
873 | http.cors.allow-headers: Authorization
874 | xpack.security.enabled: true
875 | xpack.security.transport.ssl.enabled: true
876 |
877 | ```
878 |
879 | ##### ②设置密码
880 |
881 | ```shell
882 | cd /data/elasticsearch-6.5.1/bin
883 | ./elasticsearch-setup-passwords interactive
884 | ```
885 |
886 | ```java
887 | Please confirm that you would like to continue [y/N]y
888 |
889 |
890 | Enter password for [elastic]: elastic
891 | Reenter password for [elastic]: elastic
892 | Passwords do not match.
893 | Try again.
894 | Enter password for [elastic]:
895 | Reenter password for [elastic]:
896 | Enter password for [apm_system]:
897 | Reenter password for [apm_system]:
898 | Enter password for [kibana]:
899 | Reenter password for [kibana]:
900 | Enter password for [logstash_system]:
901 | Reenter password for [logstash_system]:
902 | Enter password for [beats_system]:
903 | Reenter password for [beats_system]:
904 | Enter password for [remote_monitoring_user]:
905 | Reenter password for [remote_monitoring_user]:
906 | Changed password for user [apm_system]
907 | Changed password for user [kibana]
908 | Changed password for user [logstash_system]
909 | Changed password for user [beats_system]
910 | Changed password for user [remote_monitoring_user]
911 | Changed password for user [elastic]
912 |
913 | ```
914 |
915 | ##### ③修改kibana
916 |
917 | ```java
918 | vim /data/kibana-6.2.3-linux-x86_64/config/kibana.yml
919 |
920 | -- 添加如下内容:
921 |
922 | elasticsearch.username: "elastic"
923 | elasticsearch.password: "elastic"
924 | ```
925 |
926 | 修改密码:
927 |
928 | ```java
929 | POST /_security/user/elastic/_password
930 | {
931 | "password": "123456"
932 | }
933 |
934 | 修改密码之后,需要重新设置kibana的配置文件,才可以重新使用kibana
935 | ```
936 |
--------------------------------------------------------------------------------
/elastic-sql.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/mvnw:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # ----------------------------------------------------------------------------
3 | # Licensed to the Apache Software Foundation (ASF) under one
4 | # or more contributor license agreements. See the NOTICE file
5 | # distributed with this work for additional information
6 | # regarding copyright ownership. The ASF licenses this file
7 | # to you under the Apache License, Version 2.0 (the
8 | # "License"); you may not use this file except in compliance
9 | # with the License. You may obtain a copy of the License at
10 | #
11 | # https://www.apache.org/licenses/LICENSE-2.0
12 | #
13 | # Unless required by applicable law or agreed to in writing,
14 | # software distributed under the License is distributed on an
15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 | # KIND, either express or implied. See the License for the
17 | # specific language governing permissions and limitations
18 | # under the License.
19 | # ----------------------------------------------------------------------------
20 |
21 | # ----------------------------------------------------------------------------
22 | # Maven2 Start Up Batch script
23 | #
24 | # Required ENV vars:
25 | # ------------------
26 | # JAVA_HOME - location of a JDK home dir
27 | #
28 | # Optional ENV vars
29 | # -----------------
30 | # M2_HOME - location of maven2's installed home dir
31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven
32 | # e.g. to debug Maven itself, use
33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35 | # ----------------------------------------------------------------------------
36 |
37 | if [ -z "$MAVEN_SKIP_RC" ] ; then
38 |
39 | if [ -f /etc/mavenrc ] ; then
40 | . /etc/mavenrc
41 | fi
42 |
43 | if [ -f "$HOME/.mavenrc" ] ; then
44 | . "$HOME/.mavenrc"
45 | fi
46 |
47 | fi
48 |
49 | # OS specific support. $var _must_ be set to either true or false.
50 | cygwin=false;
51 | darwin=false;
52 | mingw=false
53 | case "`uname`" in
54 | CYGWIN*) cygwin=true ;;
55 | MINGW*) mingw=true;;
56 | Darwin*) darwin=true
57 | # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
58 | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
59 | if [ -z "$JAVA_HOME" ]; then
60 | if [ -x "/usr/libexec/java_home" ]; then
61 | export JAVA_HOME="`/usr/libexec/java_home`"
62 | else
63 | export JAVA_HOME="/Library/Java/Home"
64 | fi
65 | fi
66 | ;;
67 | esac
68 |
69 | if [ -z "$JAVA_HOME" ] ; then
70 | if [ -r /etc/gentoo-release ] ; then
71 | JAVA_HOME=`java-config --jre-home`
72 | fi
73 | fi
74 |
75 | if [ -z "$M2_HOME" ] ; then
76 | ## resolve links - $0 may be a link to maven's home
77 | PRG="$0"
78 |
79 | # need this for relative symlinks
80 | while [ -h "$PRG" ] ; do
81 | ls=`ls -ld "$PRG"`
82 | link=`expr "$ls" : '.*-> \(.*\)$'`
83 | if expr "$link" : '/.*' > /dev/null; then
84 | PRG="$link"
85 | else
86 | PRG="`dirname "$PRG"`/$link"
87 | fi
88 | done
89 |
90 | saveddir=`pwd`
91 |
92 | M2_HOME=`dirname "$PRG"`/..
93 |
94 | # make it fully qualified
95 | M2_HOME=`cd "$M2_HOME" && pwd`
96 |
97 | cd "$saveddir"
98 | # echo Using m2 at $M2_HOME
99 | fi
100 |
101 | # For Cygwin, ensure paths are in UNIX format before anything is touched
102 | if $cygwin ; then
103 | [ -n "$M2_HOME" ] &&
104 | M2_HOME=`cygpath --unix "$M2_HOME"`
105 | [ -n "$JAVA_HOME" ] &&
106 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
107 | [ -n "$CLASSPATH" ] &&
108 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
109 | fi
110 |
111 | # For Mingw, ensure paths are in UNIX format before anything is touched
112 | if $mingw ; then
113 | [ -n "$M2_HOME" ] &&
114 | M2_HOME="`(cd "$M2_HOME"; pwd)`"
115 | [ -n "$JAVA_HOME" ] &&
116 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
117 | fi
118 |
119 | if [ -z "$JAVA_HOME" ]; then
120 | javaExecutable="`which javac`"
121 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
122 | # readlink(1) is not available as standard on Solaris 10.
123 | readLink=`which readlink`
124 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
125 | if $darwin ; then
126 | javaHome="`dirname \"$javaExecutable\"`"
127 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
128 | else
129 | javaExecutable="`readlink -f \"$javaExecutable\"`"
130 | fi
131 | javaHome="`dirname \"$javaExecutable\"`"
132 | javaHome=`expr "$javaHome" : '\(.*\)/bin'`
133 | JAVA_HOME="$javaHome"
134 | export JAVA_HOME
135 | fi
136 | fi
137 | fi
138 |
139 | if [ -z "$JAVACMD" ] ; then
140 | if [ -n "$JAVA_HOME" ] ; then
141 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
142 | # IBM's JDK on AIX uses strange locations for the executables
143 | JAVACMD="$JAVA_HOME/jre/sh/java"
144 | else
145 | JAVACMD="$JAVA_HOME/bin/java"
146 | fi
147 | else
148 | JAVACMD="`which java`"
149 | fi
150 | fi
151 |
152 | if [ ! -x "$JAVACMD" ] ; then
153 | echo "Error: JAVA_HOME is not defined correctly." >&2
154 | echo " We cannot execute $JAVACMD" >&2
155 | exit 1
156 | fi
157 |
158 | if [ -z "$JAVA_HOME" ] ; then
159 | echo "Warning: JAVA_HOME environment variable is not set."
160 | fi
161 |
162 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
163 |
164 | # traverses directory structure from process work directory to filesystem root
165 | # first directory with .mvn subdirectory is considered project base directory
166 | find_maven_basedir() {
167 |
168 | if [ -z "$1" ]
169 | then
170 | echo "Path not specified to find_maven_basedir"
171 | return 1
172 | fi
173 |
174 | basedir="$1"
175 | wdir="$1"
176 | while [ "$wdir" != '/' ] ; do
177 | if [ -d "$wdir"/.mvn ] ; then
178 | basedir=$wdir
179 | break
180 | fi
181 | # workaround for JBEAP-8937 (on Solaris 10/Sparc)
182 | if [ -d "${wdir}" ]; then
183 | wdir=`cd "$wdir/.."; pwd`
184 | fi
185 | # end of workaround
186 | done
187 | echo "${basedir}"
188 | }
189 |
190 | # concatenates all lines of a file
191 | concat_lines() {
192 | if [ -f "$1" ]; then
193 | echo "$(tr -s '\n' ' ' < "$1")"
194 | fi
195 | }
196 |
197 | BASE_DIR=`find_maven_basedir "$(pwd)"`
198 | if [ -z "$BASE_DIR" ]; then
199 | exit 1;
200 | fi
201 |
202 | ##########################################################################################
203 | # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
204 | # This allows using the maven wrapper in projects that prohibit checking in binary data.
205 | ##########################################################################################
206 | if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
207 | if [ "$MVNW_VERBOSE" = true ]; then
208 | echo "Found .mvn/wrapper/maven-wrapper.jar"
209 | fi
210 | else
211 | if [ "$MVNW_VERBOSE" = true ]; then
212 | echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
213 | fi
214 | if [ -n "$MVNW_REPOURL" ]; then
215 | jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
216 | else
217 | jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
218 | fi
219 | while IFS="=" read key value; do
220 | case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
221 | esac
222 | done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
223 | if [ "$MVNW_VERBOSE" = true ]; then
224 | echo "Downloading from: $jarUrl"
225 | fi
226 | wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
227 | if $cygwin; then
228 | wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
229 | fi
230 |
231 | if command -v wget > /dev/null; then
232 | if [ "$MVNW_VERBOSE" = true ]; then
233 | echo "Found wget ... using wget"
234 | fi
235 | if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
236 | wget "$jarUrl" -O "$wrapperJarPath"
237 | else
238 | wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
239 | fi
240 | elif command -v curl > /dev/null; then
241 | if [ "$MVNW_VERBOSE" = true ]; then
242 | echo "Found curl ... using curl"
243 | fi
244 | if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
245 | curl -o "$wrapperJarPath" "$jarUrl" -f
246 | else
247 | curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
248 | fi
249 |
250 | else
251 | if [ "$MVNW_VERBOSE" = true ]; then
252 | echo "Falling back to using Java to download"
253 | fi
254 | javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
255 | # For Cygwin, switch paths to Windows format before running javac
256 | if $cygwin; then
257 | javaClass=`cygpath --path --windows "$javaClass"`
258 | fi
259 | if [ -e "$javaClass" ]; then
260 | if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
261 | if [ "$MVNW_VERBOSE" = true ]; then
262 | echo " - Compiling MavenWrapperDownloader.java ..."
263 | fi
264 | # Compiling the Java class
265 | ("$JAVA_HOME/bin/javac" "$javaClass")
266 | fi
267 | if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
268 | # Running the downloader
269 | if [ "$MVNW_VERBOSE" = true ]; then
270 | echo " - Running MavenWrapperDownloader.java ..."
271 | fi
272 | ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
273 | fi
274 | fi
275 | fi
276 | fi
277 | ##########################################################################################
278 | # End of extension
279 | ##########################################################################################
280 |
281 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
282 | if [ "$MVNW_VERBOSE" = true ]; then
283 | echo $MAVEN_PROJECTBASEDIR
284 | fi
285 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
286 |
287 | # For Cygwin, switch paths to Windows format before running java
288 | if $cygwin; then
289 | [ -n "$M2_HOME" ] &&
290 | M2_HOME=`cygpath --path --windows "$M2_HOME"`
291 | [ -n "$JAVA_HOME" ] &&
292 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
293 | [ -n "$CLASSPATH" ] &&
294 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
295 | [ -n "$MAVEN_PROJECTBASEDIR" ] &&
296 | MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
297 | fi
298 |
299 | # Provide a "standardized" way to retrieve the CLI args that will
300 | # work with both Windows and non-Windows executions.
301 | MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
302 | export MAVEN_CMD_LINE_ARGS
303 |
304 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
305 |
306 | exec "$JAVACMD" \
307 | $MAVEN_OPTS \
308 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
309 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
310 | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
311 |
--------------------------------------------------------------------------------
/mvnw.cmd:
--------------------------------------------------------------------------------
1 | @REM ----------------------------------------------------------------------------
2 | @REM Licensed to the Apache Software Foundation (ASF) under one
3 | @REM or more contributor license agreements. See the NOTICE file
4 | @REM distributed with this work for additional information
5 | @REM regarding copyright ownership. The ASF licenses this file
6 | @REM to you under the Apache License, Version 2.0 (the
7 | @REM "License"); you may not use this file except in compliance
8 | @REM with the License. You may obtain a copy of the License at
9 | @REM
10 | @REM https://www.apache.org/licenses/LICENSE-2.0
11 | @REM
12 | @REM Unless required by applicable law or agreed to in writing,
13 | @REM software distributed under the License is distributed on an
14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | @REM KIND, either express or implied. See the License for the
16 | @REM specific language governing permissions and limitations
17 | @REM under the License.
18 | @REM ----------------------------------------------------------------------------
19 |
20 | @REM ----------------------------------------------------------------------------
21 | @REM Maven2 Start Up Batch script
22 | @REM
23 | @REM Required ENV vars:
24 | @REM JAVA_HOME - location of a JDK home dir
25 | @REM
26 | @REM Optional ENV vars
27 | @REM M2_HOME - location of maven2's installed home dir
28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31 | @REM e.g. to debug Maven itself, use
32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34 | @REM ----------------------------------------------------------------------------
35 |
36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37 | @echo off
38 | @REM set title of command window
39 | title %0
40 | @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42 |
43 | @REM set %HOME% to equivalent of $HOME
44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45 |
46 | @REM Execute a user defined script before this one
47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending
49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51 | :skipRcPre
52 |
53 | @setlocal
54 |
55 | set ERROR_CODE=0
56 |
57 | @REM To isolate internal variables from possible post scripts, we use another setlocal
58 | @setlocal
59 |
60 | @REM ==== START VALIDATION ====
61 | if not "%JAVA_HOME%" == "" goto OkJHome
62 |
63 | echo.
64 | echo Error: JAVA_HOME not found in your environment. >&2
65 | echo Please set the JAVA_HOME variable in your environment to match the >&2
66 | echo location of your Java installation. >&2
67 | echo.
68 | goto error
69 |
70 | :OkJHome
71 | if exist "%JAVA_HOME%\bin\java.exe" goto init
72 |
73 | echo.
74 | echo Error: JAVA_HOME is set to an invalid directory. >&2
75 | echo JAVA_HOME = "%JAVA_HOME%" >&2
76 | echo Please set the JAVA_HOME variable in your environment to match the >&2
77 | echo location of your Java installation. >&2
78 | echo.
79 | goto error
80 |
81 | @REM ==== END VALIDATION ====
82 |
83 | :init
84 |
85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86 | @REM Fallback to current working directory if not found.
87 |
88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90 |
91 | set EXEC_DIR=%CD%
92 | set WDIR=%EXEC_DIR%
93 | :findBaseDir
94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound
95 | cd ..
96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound
97 | set WDIR=%CD%
98 | goto findBaseDir
99 |
100 | :baseDirFound
101 | set MAVEN_PROJECTBASEDIR=%WDIR%
102 | cd "%EXEC_DIR%"
103 | goto endDetectBaseDir
104 |
105 | :baseDirNotFound
106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107 | cd "%EXEC_DIR%"
108 |
109 | :endDetectBaseDir
110 |
111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112 |
113 | @setlocal EnableExtensions EnableDelayedExpansion
114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116 |
117 | :endReadAdditionalConfig
118 |
119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122 |
123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
124 |
125 | FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127 | )
128 |
129 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131 | if exist %WRAPPER_JAR% (
132 | if "%MVNW_VERBOSE%" == "true" (
133 | echo Found %WRAPPER_JAR%
134 | )
135 | ) else (
136 | if not "%MVNW_REPOURL%" == "" (
137 | SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
138 | )
139 | if "%MVNW_VERBOSE%" == "true" (
140 | echo Couldn't find %WRAPPER_JAR%, downloading it ...
141 | echo Downloading from: %DOWNLOAD_URL%
142 | )
143 |
144 | powershell -Command "&{"^
145 | "$webclient = new-object System.Net.WebClient;"^
146 | "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147 | "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148 | "}"^
149 | "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150 | "}"
151 | if "%MVNW_VERBOSE%" == "true" (
152 | echo Finished downloading %WRAPPER_JAR%
153 | )
154 | )
155 | @REM End of extension
156 |
157 | @REM Provide a "standardized" way to retrieve the CLI args that will
158 | @REM work with both Windows and non-Windows executions.
159 | set MAVEN_CMD_LINE_ARGS=%*
160 |
161 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
162 | if ERRORLEVEL 1 goto error
163 | goto end
164 |
165 | :error
166 | set ERROR_CODE=1
167 |
168 | :end
169 | @endlocal & set ERROR_CODE=%ERROR_CODE%
170 |
171 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
172 | @REM check for post script, once with legacy .bat ending and once with .cmd ending
173 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
174 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
175 | :skipRcPost
176 |
177 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
178 | if "%MAVEN_BATCH_PAUSE%" == "on" pause
179 |
180 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
181 |
182 | exit /B %ERROR_CODE%
183 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | org.springframework.boot
7 | spring-boot-starter-parent
8 | 2.2.2.RELEASE
9 |
10 |
11 | com.es
12 | elastic-sql
13 | 0.0.1-SNAPSHOT
14 | elastic-sql
15 | Demo project for Spring Boot
16 |
17 |
18 | 1.8
19 | UTF-8
20 | UTF-8
21 | 1.8
22 | 2.8.2
23 | 1.7.25
24 | 1.1.10
25 | 3.0.0-RC04
26 | 5.0.2.RELEASE
27 |
28 |
29 |
30 |
31 |
32 | org.elasticsearch.plugin
33 | x-pack-sql-jdbc
34 | 6.5.2
35 |
36 |
37 |
38 |
39 |
40 | org.mybatis.spring.boot
41 | mybatis-spring-boot-starter
42 | 1.3.2
43 |
44 |
45 |
46 | org.springframework.boot
47 | spring-boot-starter-logging
48 |
49 |
50 | org.mybatis
51 | mybatis
52 |
53 |
54 | org.mybatis
55 | mybatis-spring
56 |
57 |
58 |
59 |
60 | mysql
61 | mysql-connector-java
62 | 5.1.39
63 |
64 |
65 | org.mybatis
66 | mybatis
67 | 3.4.5
68 |
69 |
70 | org.mybatis
71 | mybatis-spring
72 | 1.3.1
73 |
74 |
75 | com.alibaba
76 | druid
77 | ${druid.version}
78 |
79 |
80 |
81 | com.meizu
82 | meizu-framework-datasource
83 | 1.2
84 |
85 |
86 |
87 | javax.servlet
88 | javax.servlet-api
89 |
90 |
91 |
92 | org.springframework.boot
93 | spring-boot-starter
94 |
95 |
96 |
97 | org.springframework.boot
98 | spring-boot-starter-web
99 |
100 |
101 |
102 |
103 | org.projectlombok
104 | lombok
105 | 1.18.0
106 |
107 |
108 |
109 | com.alibaba
110 | fastjson
111 | 1.2.32
112 |
113 |
114 |
115 |
116 | org.springframework.boot
117 | spring-boot-starter-jdbc
118 | 2.1.3.RELEASE
119 |
120 |
121 |
122 |
123 |
124 |
125 | elastic.co
126 | https://artifacts.elastic.co/maven
127 |
128 |
129 |
130 |
131 |
132 |
133 | org.springframework.boot
134 | spring-boot-maven-plugin
135 |
136 |
137 |
138 |
139 |
140 |
--------------------------------------------------------------------------------
/src/main/java/com/es/elasticsql/ElasticSqlApplication.java:
--------------------------------------------------------------------------------
1 | package com.es.elasticsql;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class ElasticSqlApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(ElasticSqlApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/es/elasticsql/configuration/EsDruidDataSourceConfig.java:
--------------------------------------------------------------------------------
1 | package com.es.elasticsql.configuration;
2 |
3 | import com.alibaba.druid.pool.DruidDataSource;
4 | import org.apache.ibatis.session.SqlSessionFactory;
5 | import org.mybatis.spring.SqlSessionFactoryBean;
6 | import org.mybatis.spring.annotation.MapperScan;
7 | import org.springframework.beans.factory.annotation.Qualifier;
8 | import org.springframework.beans.factory.annotation.Value;
9 | import org.springframework.context.annotation.Bean;
10 | import org.springframework.context.annotation.Configuration;
11 | import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
12 |
13 | import javax.sql.DataSource;
14 |
15 |
16 | /**
17 | * @program:
18 | * @description: es 数据源配置
19 | **/
20 | @Configuration
21 | @MapperScan(basePackages = {"com.es.elasticsql.mapper"}, sqlSessionFactoryRef = "esSqlSessionFactory")
22 | public class EsDruidDataSourceConfig {
23 |
24 | @Value("${spring.datasource.es.configLocation}")
25 | private String configLocation;
26 |
27 | @Value("${spring.datasource.es.mapperLocations}")
28 | private String bigdataMapperLocations;
29 |
30 | @Value("${spring.datasource.es.url}")
31 | private String esUrl;
32 |
33 | @Bean(name = "esDataSource")
34 | public DataSource esDataSource() {
35 | DruidDataSource dataSource = new DruidDataSource();
36 | dataSource.setDriverClassName("org.elasticsearch.xpack.sql.jdbc.jdbc.JdbcDriver");
37 | dataSource.setUrl(esUrl);
38 | return dataSource;
39 | }
40 |
41 | /**
42 | * SqlSessionFactory配置
43 | *
44 | * @return
45 | * @throws Exception
46 | */
47 | @Bean(name = "esSqlSessionFactory")
48 | public SqlSessionFactory bigdataSqlSessionFactory(@Qualifier("esDataSource") DataSource dataSource) throws Exception {
49 | SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
50 | sqlSessionFactoryBean.setDataSource(dataSource);
51 |
52 | PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
53 | //配置mapper文件位置
54 | sqlSessionFactoryBean.setMapperLocations(resolver.getResources(bigdataMapperLocations));
55 | sqlSessionFactoryBean.setConfigLocation(resolver.getResource(configLocation));
56 | return sqlSessionFactoryBean.getObject();
57 | }
58 |
59 | }
--------------------------------------------------------------------------------
/src/main/java/com/es/elasticsql/controller/EsController.java:
--------------------------------------------------------------------------------
1 | package com.es.elasticsql.controller;
2 |
3 | import com.alibaba.fastjson.JSON;
4 | import com.es.elasticsql.entity.PeopleTest;
5 | import com.es.elasticsql.service.EsService;
6 | import org.springframework.beans.factory.annotation.Autowired;
7 | import org.springframework.web.bind.annotation.RequestMapping;
8 | import org.springframework.web.bind.annotation.RestController;
9 |
10 | import javax.sql.DataSource;
11 | import java.util.List;
12 |
13 | @RestController
14 | public class EsController {
15 |
16 | @Autowired
17 | DataSource dataSource;
18 |
19 | @Autowired
20 | private EsService esService;
21 |
22 | @RequestMapping("/queryAll")
23 | public String queryAll() {
24 | System.out.println(dataSource);
25 | List list = esService.queryAll();
26 | return JSON.toJSONString(list);
27 | }
28 |
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/com/es/elasticsql/entity/PeopleTest.java:
--------------------------------------------------------------------------------
1 | package com.es.elasticsql.entity;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 |
7 | @Data
8 | public class PeopleTest implements Serializable {
9 | private static final long serialVersionUID = 1L;
10 |
11 | /**
12 | * id
13 | */
14 | private Long id;
15 |
16 | /**
17 | * name
18 | */
19 | private String name;
20 |
21 | /**
22 | * age
23 | */
24 | private Integer age;
25 |
26 | /**
27 | * createtime
28 | */
29 | private String createtime;
30 |
31 | }
--------------------------------------------------------------------------------
/src/main/java/com/es/elasticsql/mapper/PeopleTestMapper.java:
--------------------------------------------------------------------------------
1 | package com.es.elasticsql.mapper;
2 |
3 |
4 | import com.es.elasticsql.entity.PeopleTest;
5 | import org.apache.ibatis.annotations.Param;
6 |
7 | import java.util.List;
8 |
9 | public interface PeopleTestMapper {
10 | int deleteByPrimaryKey(Long id);
11 |
12 | int insert(PeopleTest record);
13 |
14 | int insertSelective(PeopleTest record);
15 |
16 | PeopleTest selectByPrimaryKey(Long id);
17 |
18 | int updateByPrimaryKeySelective(PeopleTest record);
19 |
20 | int updateByPrimaryKey(PeopleTest record);
21 |
22 | List queryAll();
23 |
24 | /**
25 | * 名称的模糊查询
26 | * @param qName
27 | * @return
28 | */
29 | List selectByName(@Param("qName") String qName);
30 |
31 | /**
32 | * 按照年龄查询
33 | * @param age
34 | * @return
35 | */
36 | List selectByAge(@Param("age")int age);
37 |
38 |
39 | /**
40 | * 根据年龄区间进行匹配查询
41 | * @param min
42 | * @param max
43 | * @return
44 | */
45 | List selectByAgeInterval(@Param("min") Integer min, @Param("max") Integer max);
46 |
47 |
48 | }
--------------------------------------------------------------------------------
/src/main/java/com/es/elasticsql/service/EsService.java:
--------------------------------------------------------------------------------
1 | package com.es.elasticsql.service;
2 |
3 | import com.es.elasticsql.entity.PeopleTest;
4 |
5 | import java.util.List;
6 |
7 | public interface EsService {
8 | List queryAll();
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/es/elasticsql/service/impl/EsServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.es.elasticsql.service.impl;
2 |
3 | import com.es.elasticsql.entity.PeopleTest;
4 | import com.es.elasticsql.mapper.PeopleTestMapper;
5 | import com.es.elasticsql.service.EsService;
6 | import org.springframework.stereotype.Service;
7 |
8 | import javax.annotation.Resource;
9 | import java.util.ArrayList;
10 | import java.util.List;
11 |
12 | @Service
13 | public class EsServiceImpl implements EsService {
14 |
15 | @Resource
16 | private PeopleTestMapper peopleTestMapper;
17 |
18 | @Override
19 | public List queryAll() {
20 | List list = new ArrayList<>();
21 | list = peopleTestMapper.queryAll();
22 | String name="李";
23 | int age = 15;
24 | List list2 = peopleTestMapper.selectByAge(age);
25 | // 模糊查询名称
26 | peopleTestMapper.selectByName(name);
27 |
28 |
29 | int min = 10;
30 | int max = 20;
31 | // 根据年龄段查询
32 | peopleTestMapper.selectByAgeInterval(min,max);
33 | // List list2 = peopleTestMapper.selectByName(name);
34 | PeopleTest peopleTest = new PeopleTest();
35 | peopleTest.setAge(20);
36 | peopleTest.setName("klkkl");
37 | peopleTest.setCreatetime("2019-1-2");
38 | // peopleTestMapper.insert(peopleTest);
39 | // PeopleTest peopleTest = peopleTestMapper.selectByPrimaryKey(1L);
40 | // list.add(peopleTest);
41 | return list;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/resources/application.yml:
--------------------------------------------------------------------------------
1 | spring:
2 | datasource:
3 | es:
4 | url: jdbc:es://http://172.31.3.36:9200/timezone=UTC&page.size=250
5 | driver-class-name: org.elasticsearch.xpack.sql.jdbc.jdbc.JdbcDriver
6 | mapperLocations: classpath*:/mybatis/*.xml
7 | configLocation: classpath:/config/elastic-mybatis.xml
8 |
9 |
--------------------------------------------------------------------------------
/src/main/resources/config/elastic-mybatis.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | %d [%t] [%c] [%p] (%file:%line\)- %m%n
7 | UTF-8
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | /data/log/jetty/automarket-server.log
33 | true
34 |
35 |
36 | INFO
37 | ACCEPT
38 | DENY
39 |
40 |
41 | /data/log/jetty/automarket-server.log.%d
42 | 30
43 |
44 |
45 |
46 | [%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n
47 | UTF-8
48 |
49 |
50 |
51 |
52 | /data/log/jetty/automarket-error.log
53 | true
54 |
55 |
56 | ERROR
57 | ACCEPT
58 | DENY
59 |
60 |
61 | /data/log/jetty/automarket-error.log.%d
62 | 7
63 |
64 |
65 |
66 | [%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n
67 | UTF-8
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/src/main/resources/mybatis/PeopleTestMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | id, name, age, createTime
12 |
13 |
19 |
20 |
25 |
26 |
27 |
34 |
35 |
36 |
42 |
43 |
44 |
50 |
51 |
52 |
53 | delete from people_test
54 | where id = #{id,jdbcType=BIGINT}
55 |
56 |
57 | insert into people_test (id, name, age,
58 | createTime)
59 | values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER},
60 | #{createtime,jdbcType=VARCHAR})
61 |
62 |
63 | insert into people_test
64 |
65 |
66 | id,
67 |
68 |
69 | name,
70 |
71 |
72 | age,
73 |
74 |
75 | createTime,
76 |
77 |
78 |
79 |
80 | #{id,jdbcType=BIGINT},
81 |
82 |
83 | #{name,jdbcType=VARCHAR},
84 |
85 |
86 | #{age,jdbcType=INTEGER},
87 |
88 |
89 | #{createtime,jdbcType=VARCHAR},
90 |
91 |
92 |
93 |
94 | update people_test
95 |
96 |
97 | name = #{name,jdbcType=VARCHAR},
98 |
99 |
100 | age = #{age,jdbcType=INTEGER},
101 |
102 |
103 | createTime = #{createtime,jdbcType=VARCHAR},
104 |
105 |
106 | where id = #{id,jdbcType=BIGINT}
107 |
108 |
109 | update people_test
110 | set name = #{name,jdbcType=VARCHAR},
111 | age = #{age,jdbcType=INTEGER},
112 | createTime = #{createtime,jdbcType=VARCHAR}
113 | where id = #{id,jdbcType=BIGINT}
114 |
115 |
--------------------------------------------------------------------------------
/target/classes/META-INF/elastic-sql.kotlin_module:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/target/classes/application.yml:
--------------------------------------------------------------------------------
1 | spring:
2 | datasource:
3 | es:
4 | url: jdbc:es://http://192.168.142.128:9200
5 | driver-class-name: org.elasticsearch.xpack.sql.jdbc.jdbc.JdbcDriver
6 | mapperLocations: classpath*:/mybatis/*.xml
7 | configLocation: classpath:/config/elastic-mybatis.xml
8 |
9 |
--------------------------------------------------------------------------------
/target/classes/config/elastic-mybatis.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/target/classes/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | %d [%t] [%c] [%p] (%file:%line\)- %m%n
7 | UTF-8
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | /data/log/jetty/automarket-server.log
33 | true
34 |
35 |
36 | INFO
37 | ACCEPT
38 | DENY
39 |
40 |
41 | /data/log/jetty/automarket-server.log.%d
42 | 30
43 |
44 |
45 |
46 | [%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n
47 | UTF-8
48 |
49 |
50 |
51 |
52 | /data/log/jetty/automarket-error.log
53 | true
54 |
55 |
56 | ERROR
57 | ACCEPT
58 | DENY
59 |
60 |
61 | /data/log/jetty/automarket-error.log.%d
62 | 7
63 |
64 |
65 |
66 | [%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n
67 | UTF-8
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/target/classes/mybatis/PeopleTestMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | id, name, age, createTime
12 |
13 |
19 |
20 |
25 |
26 |
27 |
34 |
35 |
36 |
42 |
43 |
44 |
45 | delete from people_test
46 | where id = #{id,jdbcType=BIGINT}
47 |
48 |
49 | insert into people_test (id, name, age,
50 | createTime)
51 | values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER},
52 | #{createtime,jdbcType=VARCHAR})
53 |
54 |
55 | insert into people_test
56 |
57 |
58 | id,
59 |
60 |
61 | name,
62 |
63 |
64 | age,
65 |
66 |
67 | createTime,
68 |
69 |
70 |
71 |
72 | #{id,jdbcType=BIGINT},
73 |
74 |
75 | #{name,jdbcType=VARCHAR},
76 |
77 |
78 | #{age,jdbcType=INTEGER},
79 |
80 |
81 | #{createtime,jdbcType=VARCHAR},
82 |
83 |
84 |
85 |
86 | update people_test
87 |
88 |
89 | name = #{name,jdbcType=VARCHAR},
90 |
91 |
92 | age = #{age,jdbcType=INTEGER},
93 |
94 |
95 | createTime = #{createtime,jdbcType=VARCHAR},
96 |
97 |
98 | where id = #{id,jdbcType=BIGINT}
99 |
100 |
101 | update people_test
102 | set name = #{name,jdbcType=VARCHAR},
103 | age = #{age,jdbcType=INTEGER},
104 | createTime = #{createtime,jdbcType=VARCHAR}
105 | where id = #{id,jdbcType=BIGINT}
106 |
107 |
--------------------------------------------------------------------------------
/target/test-classes/META-INF/elastic-sql.kotlin_module:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------