1
1
/*
2
- * Copyright 2013 the original author or authors.
2
+ * Copyright 2013-2014 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
33
33
import org .elasticsearch .search .highlight .HighlightBuilder ;
34
34
import org .elasticsearch .search .sort .FieldSortBuilder ;
35
35
import org .elasticsearch .search .sort .SortOrder ;
36
- import org .junit .*;
36
+ import org .junit .Before ;
37
+ import org .junit .Ignore ;
38
+ import org .junit .Test ;
37
39
import org .junit .runner .RunWith ;
38
40
import org .springframework .beans .factory .annotation .Autowired ;
39
- import org .springframework .data .annotation .Id ;
40
- import org .springframework .data .annotation .Version ;
41
41
import org .springframework .data .domain .Page ;
42
42
import org .springframework .data .domain .PageRequest ;
43
43
import org .springframework .data .domain .Pageable ;
@@ -75,25 +75,11 @@ public class ElasticsearchTemplateTests {
75
75
public void before () {
76
76
elasticsearchTemplate .deleteIndex (SampleEntity .class );
77
77
elasticsearchTemplate .createIndex (SampleEntity .class );
78
- elasticsearchTemplate .deleteIndex (INDEX_1_NAME );
79
- elasticsearchTemplate .deleteIndex (INDEX_2_NAME );
80
- elasticsearchTemplate .refresh (SampleEntity .class , true );
78
+ elasticsearchTemplate .deleteIndex (INDEX_1_NAME );
79
+ elasticsearchTemplate .deleteIndex (INDEX_2_NAME );
80
+ elasticsearchTemplate .refresh (SampleEntity .class , true );
81
81
}
82
82
83
-
84
- // @After
85
- /** // doing a cleanup to ensure that no indexes are left behind after the test run */
86
- /**
87
- public void after() {
88
-
89
- // it is safe to call deleteIndex as it checks for index existance before deleting it
90
- elasticsearchTemplate.deleteIndex(INDEX_NAME);
91
- elasticsearchTemplate.deleteIndex(INDEX_1_NAME);
92
- elasticsearchTemplate.deleteIndex(INDEX_2_NAME);
93
-
94
- }**/
95
-
96
-
97
83
@ Test
98
84
public void shouldReturnCountForGivenSearchQuery () {
99
85
// given
@@ -734,7 +720,7 @@ public void shouldReturnListForGivenStringQuery() {
734
720
.rate (15 )
735
721
.version (System .currentTimeMillis ()).build ();
736
722
737
- List <IndexQuery > indexQueries = getIndexQueries (Arrays .asList (sampleEntity1 , sampleEntity2 , sampleEntity3 ));
723
+ List <IndexQuery > indexQueries = getIndexQueries (Arrays .asList (sampleEntity1 , sampleEntity2 , sampleEntity3 ));
738
724
739
725
// when
740
726
elasticsearchTemplate .bulkIndex (indexQueries );
@@ -1047,7 +1033,6 @@ public void shouldAddAliasForVariousRoutingValues() {
1047
1033
}
1048
1034
1049
1035
1050
-
1051
1036
@ Test
1052
1037
public void shouldIndexDocumentForSpecifiedSource () {
1053
1038
@@ -1527,81 +1512,79 @@ public void shouldCreateGivenSettingsForGivenIndex() {
1527
1512
}
1528
1513
1529
1514
1530
- @ Test
1531
- public void shouldTestResultsAcrossMultipleIndices () {
1532
- // given
1533
- String documentId1 = randomNumeric (5 );
1534
- SampleEntity sampleEntity1 = new SampleEntityBuilder (documentId1 ).message ("some message" )
1535
- .version (System .currentTimeMillis ()).build ();
1536
-
1537
- IndexQuery indexQuery1 = new IndexQueryBuilder ().withId (sampleEntity1 .getId ())
1538
- .withIndexName ("test-index-1" )
1539
- .withObject (sampleEntity1 )
1540
- .build ();
1541
-
1542
- String documentId2 = randomNumeric (5 );
1543
- SampleEntity sampleEntity2 = new SampleEntityBuilder (documentId2 ).message ("some test message" )
1544
- .version (System .currentTimeMillis ()).build ();
1515
+ @ Test
1516
+ public void shouldTestResultsAcrossMultipleIndices () {
1517
+ // given
1518
+ String documentId1 = randomNumeric (5 );
1519
+ SampleEntity sampleEntity1 = new SampleEntityBuilder (documentId1 ).message ("some message" )
1520
+ .version (System .currentTimeMillis ()).build ();
1545
1521
1546
- IndexQuery indexQuery2 = new IndexQueryBuilder ().withId (sampleEntity2 .getId ())
1547
- .withIndexName ("test-index-2 " )
1548
- .withObject (sampleEntity2 )
1549
- .build ();
1522
+ IndexQuery indexQuery1 = new IndexQueryBuilder ().withId (sampleEntity1 .getId ())
1523
+ .withIndexName ("test-index-1 " )
1524
+ .withObject (sampleEntity1 )
1525
+ .build ();
1550
1526
1551
- elasticsearchTemplate . bulkIndex ( Arrays . asList ( indexQuery1 , indexQuery2 ) );
1552
- elasticsearchTemplate . refresh ( " test-index-1" , true );
1553
- elasticsearchTemplate . refresh ( "test-index-2" , true );
1527
+ String documentId2 = randomNumeric ( 5 );
1528
+ SampleEntity sampleEntity2 = new SampleEntityBuilder ( documentId2 ). message ( "some test message" )
1529
+ . version ( System . currentTimeMillis ()). build ( );
1554
1530
1555
- SearchQuery searchQuery = new NativeSearchQueryBuilder ()
1556
- .withQuery (matchAllQuery ())
1557
- .withIndices ("test-index-1" , "test-index-2" )
1558
- .build ();
1559
- // when
1560
- List <SampleEntity > sampleEntities = elasticsearchTemplate .queryForList (searchQuery , SampleEntity .class );
1531
+ IndexQuery indexQuery2 = new IndexQueryBuilder ().withId (sampleEntity2 .getId ())
1532
+ .withIndexName ("test-index-2" )
1533
+ .withObject (sampleEntity2 )
1534
+ .build ();
1561
1535
1562
- // then
1563
- assertThat ( sampleEntities . size (), is ( equalTo ( 2 )) );
1564
- }
1536
+ elasticsearchTemplate . bulkIndex ( Arrays . asList ( indexQuery1 , indexQuery2 ));
1537
+ elasticsearchTemplate . refresh ( "test-index-1" , true );
1538
+ elasticsearchTemplate . refresh ( "test-index-2" , true );
1565
1539
1566
- @ Test
1567
- /**
1568
- * This is basically a demonstration to show composing entities out of heterogeneous indexes.
1569
- */
1570
- public void shouldComposeObjectsReturnedFromHeterogeneousIndexes () {
1540
+ SearchQuery searchQuery = new NativeSearchQueryBuilder ()
1541
+ .withQuery (matchAllQuery ())
1542
+ .withIndices ("test-index-1" , "test-index-2" )
1543
+ .build ();
1544
+ // when
1545
+ List <SampleEntity > sampleEntities = elasticsearchTemplate .queryForList (searchQuery , SampleEntity .class );
1571
1546
1572
- // Given
1547
+ // then
1548
+ assertThat (sampleEntities .size (), is (equalTo (2 )));
1549
+ }
1573
1550
1574
- HetroEntity1 entity1 = new HetroEntity1 (randomNumeric (3 ), "aFirstName" );
1575
- HetroEntity2 entity2 = new HetroEntity2 (randomNumeric (4 ), "aLastName" );
1551
+ @ Test
1552
+ /**
1553
+ * This is basically a demonstration to show composing entities out of heterogeneous indexes.
1554
+ */
1555
+ public void shouldComposeObjectsReturnedFromHeterogeneousIndexes () {
1576
1556
1577
- IndexQuery idxQuery1 = new IndexQueryBuilder ().withIndexName (INDEX_1_NAME ).withId (entity1 .getId ()).withObject (entity1 ).build ();
1578
- IndexQuery idxQuery2 = new IndexQueryBuilder ().withIndexName (INDEX_2_NAME ).withId (entity2 .getId ()).withObject (entity2 ).build ();
1557
+ // Given
1579
1558
1559
+ HetroEntity1 entity1 = new HetroEntity1 (randomNumeric (3 ), "aFirstName" );
1560
+ HetroEntity2 entity2 = new HetroEntity2 (randomNumeric (4 ), "aLastName" );
1580
1561
1581
- elasticsearchTemplate .bulkIndex (Arrays .asList (idxQuery1 , idxQuery2 ));
1582
- elasticsearchTemplate .refresh (INDEX_1_NAME , true );
1583
- elasticsearchTemplate .refresh (INDEX_2_NAME , true );
1562
+ IndexQuery idxQuery1 = new IndexQueryBuilder ().withIndexName (INDEX_1_NAME ).withId (entity1 .getId ()).withObject (entity1 ).build ();
1563
+ IndexQuery idxQuery2 = new IndexQueryBuilder ().withIndexName (INDEX_2_NAME ).withId (entity2 .getId ()).withObject (entity2 ).build ();
1584
1564
1585
- // When
1565
+ elasticsearchTemplate .bulkIndex (Arrays .asList (idxQuery1 , idxQuery2 ));
1566
+ elasticsearchTemplate .refresh (INDEX_1_NAME , true );
1567
+ elasticsearchTemplate .refresh (INDEX_2_NAME , true );
1586
1568
1587
- SearchQuery searchQuery = new NativeSearchQueryBuilder ().withQuery (matchAllQuery ()).withTypes ("hetro" ).withIndices (INDEX_1_NAME , INDEX_2_NAME ).build ();
1588
- Page <ResultAggregator > page = elasticsearchTemplate .queryForPage (searchQuery , ResultAggregator .class , new SearchResultMapper () {
1589
- @ Override
1590
- public <T > FacetedPage <T > mapResults (SearchResponse response , Class <T > clazz , Pageable pageable ) {
1591
- List <ResultAggregator > values = new ArrayList <ResultAggregator >();
1592
- for (SearchHit searchHit : response .getHits ()) {
1593
- String id = String .valueOf (searchHit .getSource ().get ("id" ));
1594
- String firstName = StringUtils .isNotEmpty ((String )searchHit .getSource ().get ("firstName" ))?(String )searchHit .getSource ().get ("firstName" ):"" ;
1595
- String lastName = StringUtils .isNotEmpty ((String )searchHit .getSource ().get ("lastName" ))?(String )searchHit .getSource ().get ("lastName" ):"" ;
1596
- values .add (new ResultAggregator (id , firstName , lastName ));
1597
- }
1598
- return new FacetedPageImpl <T >((List <T >) values );
1599
- }
1600
- });
1569
+ // When
1601
1570
1602
- assertThat (page .getTotalElements (), is (2l ));
1571
+ SearchQuery searchQuery = new NativeSearchQueryBuilder ().withQuery (matchAllQuery ()).withTypes ("hetro" ).withIndices (INDEX_1_NAME , INDEX_2_NAME ).build ();
1572
+ Page <ResultAggregator > page = elasticsearchTemplate .queryForPage (searchQuery , ResultAggregator .class , new SearchResultMapper () {
1573
+ @ Override
1574
+ public <T > FacetedPage <T > mapResults (SearchResponse response , Class <T > clazz , Pageable pageable ) {
1575
+ List <ResultAggregator > values = new ArrayList <ResultAggregator >();
1576
+ for (SearchHit searchHit : response .getHits ()) {
1577
+ String id = String .valueOf (searchHit .getSource ().get ("id" ));
1578
+ String firstName = StringUtils .isNotEmpty ((String ) searchHit .getSource ().get ("firstName" )) ? (String ) searchHit .getSource ().get ("firstName" ) : "" ;
1579
+ String lastName = StringUtils .isNotEmpty ((String ) searchHit .getSource ().get ("lastName" )) ? (String ) searchHit .getSource ().get ("lastName" ) : "" ;
1580
+ values .add (new ResultAggregator (id , firstName , lastName ));
1581
+ }
1582
+ return new FacetedPageImpl <T >((List <T >) values );
1583
+ }
1584
+ });
1603
1585
1604
- }
1586
+ assertThat (page .getTotalElements (), is (2l ));
1587
+ }
1605
1588
1606
1589
1607
1590
private IndexQuery getIndexQuery (SampleEntity sampleEntity ) {
@@ -1616,22 +1599,17 @@ private List<IndexQuery> getIndexQueries(List<SampleEntity> sampleEntities) {
1616
1599
return indexQueries ;
1617
1600
}
1618
1601
1619
- @ Document (indexName = INDEX_2_NAME , replicas = 0 , shards = 1 )
1620
- class ResultAggregator {
1621
-
1622
- private String id ;
1623
- private String firstName ;
1624
- private String lastName ;
1625
-
1626
- ResultAggregator (String id , String firstName , String lastName ) {
1627
- this .id = id ;
1628
- this .firstName = firstName ;
1629
- this .lastName = lastName ;
1630
- }
1631
-
1632
- }
1633
-
1634
-
1602
+ @ Document (indexName = INDEX_2_NAME , replicas = 0 , shards = 1 )
1603
+ class ResultAggregator {
1635
1604
1605
+ private String id ;
1606
+ private String firstName ;
1607
+ private String lastName ;
1636
1608
1609
+ ResultAggregator (String id , String firstName , String lastName ) {
1610
+ this .id = id ;
1611
+ this .firstName = firstName ;
1612
+ this .lastName = lastName ;
1613
+ }
1614
+ }
1637
1615
}
0 commit comments