微软OneNote客户预览版学习工具下载(暂未上线):教学好帮手
741
2022-05-29
head插件 port:9100
用ik分词器
创建一个索引(数据库)
创建一个索引test2带有mapping的
往test2里面添加数据,默认表是_doc
往test2修改数据,(还有一种方法是put直接覆盖),post的好处是可以一处修改,别的不变
删除一个索引
查询
查询一个索引test2的全部数据
查询匹配,match关键字,查询索引test2中name是mxdmxd的信息
复杂查询
结果过滤
3.删除数据,把匹配到的age=123的记录删除
match和term
2.Java中的api调用
14、重启es并启动grunt
nohup elasticsearch &
grunt server & --grunt前端启动工具
15、使用head插件
http://192.168.137.1:9100/
用ik分词器
两个分词方法:ik_max_word最细粒度划分
ik_smart最小划分,只划一个
GET _analyze { "analyzer": "ik_smart", "text": "天生我材必有用" } GET _analyze { "analyzer": "ik_max_word", "text": "天生我材必有用" }
1
2
3
4
5
6
7
8
9
10
11
创建一个索引(数据库)
put 索引名/类型(以后会删除)/文档id
PUT mxd/type1/1 { "name": "马向东", "age": 23 }
1
2
3
4
5
创建一个索引test2带有mapping的
PUT /test2 { "mappings": { "properties": { "name": { "type": "text" }, "age": { "type": "integer" }, "birthday": { "type": "date" } } } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
往test2里面添加数据,默认表是_doc
/doc是默认表名,id是1
PUT test2/_doc/1 { "name": "马向东", "age": 23, "birthday" : "1911-11-11" }
1
2
3
4
5
6
7
往test2修改数据,(还有一种方法是put直接覆盖),post的好处是可以一处修改,别的不变
POST test2/_doc/1/_update { "doc":{ "name": "咚咚咚" } }
1
2
3
4
5
6
7
删除一个索引
DELETE tute
1
2
3
查询
条件查询:查询test2中name列:包含马的记录
GET test2/_doc/_search?q=name:马
1
查询一个索引test2的全部数据
GET test2/_search
1
查询匹配,match关键字,查询索引test2中name是mxdmxd的信息
GET test2/_search { "query": { "match": { "name":"mxdmxd" } } }
1
2
3
4
5
6
7
8
复杂查询
GET test2/_search { "query": { "match": { "name":"mxdmxd" } } }
1
2
3
4
5
6
7
8
结果过滤
GET test2/_search { "query": { "match": { "name":"mxdmxd" } } , "_source": "age" , #只显示age "sort": [ #排序 { "age": { "order": "asc" } } ], "from": 0 #分页:2个一页 , "size"0: 2 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
3.删除数据,把匹配到的age=123的记录删除
POST test2/_delete_by_query { "query": { "match": { "age": 123 } } }
1
2
3
4
5
6
7
8
match和term
match在匹配时会对所查找的关键词进行分词,然后按分词匹配查找,而term会直接对关键词进行查找。一般模糊查找的时候,多用match,而精确查找时可以使用term。
2.Java中的api调用
@Configuration public class ElasticConfig { @Bean public RestHighLevelClient restHighLevelClient() { RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("192.168.56.22", 9200, "http"), new HttpHost("192.168.56.33", 9200, "http"), new HttpHost("192.168.56.22", 9200, "http"))); return client; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@SpringBootTest class Elastic1ApplicationTests { @Autowired RestHighLevelClient restHighLevelClient; //创建索引请求 @Test void contextLoads() throws IOException { CreateIndexRequest test3 = new CreateIndexRequest("test3"); CreateIndexResponse createIndexResponse = restHighLevelClient.indices().create(test3, RequestOptions.DEFAULT); System.out.println(createIndexResponse); } //获取索引请求,判断是否存在 @Test void testExitisIndex() throws IOException { GetIndexRequest test2 = new GetIndexRequest("test2"); boolean exists = restHighLevelClient.indices().exists(test2, RequestOptions.DEFAULT); System.out.println(exists); } //删除索引请求,存在才可以删除 @Test void testDeleteIndex() throws IOException { DeleteIndexRequest request = new DeleteIndexRequest("mxd"); AcknowledgedResponse delete = restHighLevelClient.indices().delete(request, RequestOptions.DEFAULT); System.out.println(delete.isAcknowledged()); } //测试添加文档 @Test void testAddDoc() throws IOException { User mxd = new User("马22向东", 12223); IndexRequest request = new IndexRequest(("mxd_index")); request.id("2"); //data放入json中 request.source(JSON.toJSONString(mxd), XContentType.JSON); //client send request IndexResponse index = restHighLevelClient.index(request, RequestOptions.DEFAULT); System.out.println(index.toString()); System.out.println(index.status()); } //文档是否存在 @Test void getIsXistsDoc() throws IOException { GetRequest mxd_index = new GetRequest("mxd_index", "1"); //不拿上下文 mxd_index.fetchSourceContext(new FetchSourceContext(false)); mxd_index.storedFields("_none_"); boolean exists = restHighLevelClient.exists(mxd_index, RequestOptions.DEFAULT); System.out.println(exists); } //拿文档信息 @Test void getDoc() throws IOException { GetRequest mxd_index = new GetRequest("mxd_index", "1"); GetResponse getResponse = restHighLevelClient.get(mxd_index, RequestOptions.DEFAULT); String s = getResponse.getSourceAsString(); System.out.println(s); System.out.println(getResponse); } //update @Test void updateDoc() throws IOException { UpdateRequest mxd_index = new UpdateRequest("mxd_index", "1"); User mxd = new User("mxd", 186); mxd_index.doc(JSON.toJSONString(mxd), XContentType.JSON); UpdateResponse update = restHighLevelClient.update(mxd_index, RequestOptions.DEFAULT); System.out.println(update.status()); } //delete @Test void deleteDoc() throws IOException { DeleteRequest mxd_index = new DeleteRequest("mxd_index", "2"); DeleteResponse delete = restHighLevelClient.delete(mxd_index, RequestOptions.DEFAULT); System.out.println(delete.status()); } //批量插入 @Test void testBulkDoc() throws IOException { BulkRequest bulkRequest = new BulkRequest(); ArrayList
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Elasticsearch
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。