ElasticSearch 学习记录(版本7.12.1)
java">package com. xiaozhi. config ;
import org. apache. http. HttpHost ;
import org. elasticsearch . client. RestClient ;
import org. elasticsearch . client. RestHighLevelClient ;
import org. springframework. context. annotation. Bean ;
import org. springframework. context. annotation. Configuration ;
@Configuration
public class ElasticSearchClientConfig {
@Bean
public RestHighLevelClient restHighLevelClient ( ) {
RestHighLevelClient client = new RestHighLevelClient (
RestClient . builder (
new HttpHost ( "127.0.0.1" , 9200 , "http" ) ) ) ;
return client;
}
}
java">package com. xiaozhi ;
import com. alibaba. fastjson. JSON;
import com. xiaozhi. pojo. User ;
import org. elasticsearch . action. admin. indices. delete. DeleteIndexRequest ;
import org. elasticsearch . action. bulk. BulkRequest ;
import org. elasticsearch . action. bulk. BulkResponse ;
import org. elasticsearch . action. delete. DeleteRequest ;
import org. elasticsearch . action. delete. DeleteResponse ;
import org. elasticsearch . action. get. GetRequest ;
import org. elasticsearch . action. get. GetResponse ;
import org. elasticsearch . action. index. IndexRequest ;
import org. elasticsearch . action. index. IndexResponse ;
import org. elasticsearch . action. search. SearchRequest ;
import org. elasticsearch . action. search. SearchResponse ;
import org. elasticsearch . action. support. master. AcknowledgedResponse ;
import org. elasticsearch . action. update. UpdateRequest ;
import org. elasticsearch . action. update. UpdateResponse ;
import org. elasticsearch . client. RequestOptions ;
import org. elasticsearch . client. RestHighLevelClient ;
import org. elasticsearch . client. indices. CreateIndexRequest ;
import org. elasticsearch . client. indices. CreateIndexResponse ;
import org. elasticsearch . client. indices. GetIndexRequest ;
import org. elasticsearch . common. unit. TimeValue ;
import org. elasticsearch . common. xcontent. XContentType ;
import org. elasticsearch . index. query. QueryBuilders ;
import org. elasticsearch . index. query. TermQueryBuilder ;
import org. elasticsearch . search. SearchHit ;
import org. elasticsearch . search. builder. SearchSourceBuilder ;
import org. elasticsearch . search. fetch. subphase. FetchSourceContext ;
import org. junit. jupiter. api. Test ;
import org. springframework. beans. factory. annotation. Autowired ;
import org. springframework. beans. factory. annotation. Qualifier ;
import org. springframework. boot. test. context. SpringBootTest ;
import java . io. IOException ;
import java . sql. Time ;
import java . util. ArrayList ;
import java . util. concurrent. TimeUnit ;
@SpringBootTest
class XiaozhiEsApiApplicationTests {
@Autowired
@Qualifier ( "restHighLevelClient" )
private RestHighLevelClient client;
@Test
void testCreateIndex ( ) throws IOException {
CreateIndexRequest request = new CreateIndexRequest ( "xiaozhi_index" ) ;
CreateIndexResponse createIndexResponse =
client. indices ( ) . create ( request, RequestOptions . DEFAULT) ;
System . out. println ( createIndexResponse) ;
}
@Test
void testExistIndex ( ) throws IOException {
GetIndexRequest request = new GetIndexRequest ( "xiaozhi_index" ) ;
boolean exists = client. indices ( ) . exists ( request, RequestOptions . DEFAULT) ;
System . out. println ( exists) ;
}
@Test
void testDeleteIndex ( ) throws IOException {
DeleteIndexRequest xiaozhi_index = new DeleteIndexRequest ( "xiaozhi_index" ) ;
AcknowledgedResponse delete = client. indices ( ) . delete ( xiaozhi_index, RequestOptions . DEFAULT) ;
System . out. println ( delete. isAcknowledged ( ) ) ;
}
@Test
void testAddDocument ( ) throws IOException {
User user = new User ( "小志" , 25 ) ;
IndexRequest request = new IndexRequest ( "xiaozhi_index" ) ;
request. id ( "1" ) ;
request. timeout ( TimeValue . timeValueSeconds ( 1 ) ) ;
request. timeout ( "1s" ) ;
IndexRequest source = request. source ( JSON. toJSONString ( user) , XContentType . JSON) ;
IndexResponse indexResponse = client. index ( request, RequestOptions . DEFAULT) ;
System . out. println ( indexResponse. toString ( ) ) ;
}
@Test
void testIsExists ( ) throws IOException {
GetRequest getRequest = new GetRequest ( "xiaozhi_index" , "1" ) ;
getRequest. fetchSourceContext ( new FetchSourceContext ( false ) ) ;
getRequest. storedFields ( "_none_" ) ;
boolean exists = client. exists ( getRequest, RequestOptions . DEFAULT) ;
System . out. println ( exists) ;
}
@Test
void testGetDocument ( ) throws IOException {
GetRequest getRequest = new GetRequest ( "xiaozhi_index" , "1" ) ;
GetResponse getResponse = client. get ( getRequest, RequestOptions . DEFAULT) ;
System . out. println ( getResponse. getSourceAsString ( ) ) ;
}
@Test
void testUpdateRequest ( ) throws IOException {
UpdateRequest updateRequest = new UpdateRequest ( "xiaozhi_index" , "1" ) ;
updateRequest. timeout ( "1s" ) ;
User user = new User ( "小志疯狂学习" , 28 ) ;
updateRequest. doc ( JSON. toJSONString ( user) , XContentType . JSON) ;
UpdateResponse updateResponse = client. update ( updateRequest, RequestOptions . DEFAULT) ;
System . out. println ( updateResponse) ;
}
@Test
void testdeleteRequest ( ) throws IOException {
DeleteRequest deleteRequest = new DeleteRequest ( "xiaozhi" , "5" ) ;
deleteRequest. timeout ( "1s" ) ;
DeleteResponse deleteResponse = client. delete ( deleteRequest, RequestOptions . DEFAULT) ;
System . out. println ( deleteResponse. status ( ) ) ;
}
@Test
void testBulkRequest ( ) throws IOException {
BulkRequest bulkRequest = new BulkRequest ( ) ;
bulkRequest. timeout ( "10s" ) ;
ArrayList < User > userList = new ArrayList < > ( ) ;
userList. add ( new User ( "xiaozhi1" , 11 ) ) ;
userList. add ( new User ( "xiaozhi2" , 12 ) ) ;
userList. add ( new User ( "xiaozhi3" , 13 ) ) ;
userList. add ( new User ( "xiaozhi4" , 14 ) ) ;
userList. add ( new User ( "xiaozhi5" , 15 ) ) ;
for ( int i = 0 ; i < userList. size ( ) ; i++ ) {
bulkRequest. add (
new IndexRequest ( "xiaozhi" )
. id ( "" + ( i+ 1 ) )
. source ( JSON. toJSONString ( userList. get ( i) ) , XContentType . JSON) ) ;
}
BulkResponse bulkResponse = client. bulk ( bulkRequest, RequestOptions . DEFAULT) ;
System . out. println ( bulkResponse. hasFailures ( ) ) ;
}
@Test
void testSearch ( ) throws IOException {
SearchRequest searchRequest = new SearchRequest ( "xiaozhi" ) ;
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder ( ) ;
TermQueryBuilder termQueryBuilder = QueryBuilders . termQuery ( "name" , "xiaozhi1" ) ;
sourceBuilder. query ( termQueryBuilder) ;
sourceBuilder. timeout ( new TimeValue ( 60 , TimeUnit . SECONDS) ) ;
searchRequest. source ( sourceBuilder) ;
SearchResponse searchResponse = client. search ( searchRequest, RequestOptions . DEFAULT) ;
System . out. println ( JSON. toJSONString ( searchResponse. getHits ( ) ) ) ;
System . out. println ( "===========================================" ) ;
for ( SearchHit hit : searchResponse. getHits ( ) . getHits ( ) ) {
System . out. println ( hit. getSourceAsString ( ) ) ;
}
}
}