12
12
13
13
import org .elasticsearch .index .query .QueryBuilders ;
14
14
import org .elasticsearch .search .SearchHit ;
15
- import org .elasticsearch .search .internal .InternalSearchHit ;
16
15
import org .elasticsearch .search .sort .FieldSortBuilder ;
17
16
import org .elasticsearch .search .sort .SortOrder ;
18
17
import org .nlpcn .es4sql .domain .Field ;
@@ -49,7 +48,7 @@ public HashJoinElasticExecutor(Client client, HashJoinElasticRequestBuilder requ
49
48
this .alreadyMatched = new HashSet <>();
50
49
}
51
50
52
- public List <InternalSearchHit > innerRun () throws IOException , SqlParseException {
51
+ public List <SearchHit > innerRun () throws IOException , SqlParseException {
53
52
54
53
Map <String , Map <String , List <Object >>> optimizationTermsFilterStructure =
55
54
initOptimizationStructure ();
@@ -63,7 +62,7 @@ public List<InternalSearchHit> innerRun() throws IOException, SqlParseException
63
62
updateRequestWithTermsFilter (optimizationTermsFilterStructure , secondTableRequest );
64
63
}
65
64
66
- List <InternalSearchHit > combinedResult = createCombinedResults (secondTableRequest );
65
+ List <SearchHit > combinedResult = createCombinedResults (secondTableRequest );
67
66
68
67
int currentNumOfResults = combinedResult .size ();
69
68
int totalLimit = requestBuilder .getTotalLimit ();
@@ -78,9 +77,9 @@ public List<InternalSearchHit> innerRun() throws IOException, SqlParseException
78
77
t2Alias );
79
78
}
80
79
if (firstTableRequest .getOriginalSelect ().isOrderdSelect ()){
81
- Collections .sort (combinedResult ,new Comparator <InternalSearchHit >() {
80
+ Collections .sort (combinedResult ,new Comparator <SearchHit >() {
82
81
@ Override
83
- public int compare (InternalSearchHit o1 , InternalSearchHit o2 ) {
82
+ public int compare (SearchHit o1 , SearchHit o2 ) {
84
83
return o1 .docId () - o2 .docId ();
85
84
}
86
85
});
@@ -107,8 +106,8 @@ private void updateFirstTableLimitIfNeeded() {
107
106
}
108
107
}
109
108
110
- private List <InternalSearchHit > createCombinedResults ( TableInJoinRequestBuilder secondTableRequest ) {
111
- List <InternalSearchHit > combinedResult = new ArrayList <>();
109
+ private List <SearchHit > createCombinedResults ( TableInJoinRequestBuilder secondTableRequest ) {
110
+ List <SearchHit > combinedResult = new ArrayList <>();
112
111
int resultIds = 0 ;
113
112
int totalLimit = this .requestBuilder .getTotalLimit ();
114
113
Integer hintLimit = secondTableRequest .getHintLimit ();
@@ -146,9 +145,9 @@ private List<InternalSearchHit> createCombinedResults( TableInJoinRequestBuilder
146
145
147
146
if (searchHitsResult != null && searchHitsResult .getSearchHits ().size () > 0 ) {
148
147
searchHitsResult .setMatchedWithOtherTable (true );
149
- List <InternalSearchHit > searchHits = searchHitsResult .getSearchHits ();
150
- for (InternalSearchHit matchingHit : searchHits ) {
151
- String combinedId = matchingHit .id () + "|" + secondTableHit .getId ();
148
+ List <SearchHit > searchHits = searchHitsResult .getSearchHits ();
149
+ for (SearchHit matchingHit : searchHits ) {
150
+ String combinedId = matchingHit .getId () + "|" + secondTableHit .getId ();
152
151
//in order to prevent same matching when using OR on hashJoins.
153
152
if (this .alreadyMatched .contains (combinedId )){
154
153
continue ;
@@ -158,15 +157,15 @@ private List<InternalSearchHit> createCombinedResults( TableInJoinRequestBuilder
158
157
}
159
158
160
159
Map <String ,Object > copiedSource = new HashMap <String ,Object >();
161
- copyMaps (copiedSource ,secondTableHit .sourceAsMap ());
160
+ copyMaps (copiedSource ,secondTableHit .getSourceAsMap ());
162
161
onlyReturnedFields (copiedSource , secondTableRequest .getReturnedFields (),secondTableRequest .getOriginalSelect ().isSelectAll ());
163
162
164
163
165
164
166
- InternalSearchHit searchHit = new InternalSearchHit (matchingHit .docId (), combinedId , new Text (matchingHit .getType () + "|" + secondTableHit .getType ()), matchingHit .getFields ());
165
+ SearchHit searchHit = new SearchHit (matchingHit .docId (), combinedId , new Text (matchingHit .getType () + "|" + secondTableHit .getType ()), matchingHit .getFields ());
167
166
searchHit .sourceRef (matchingHit .getSourceRef ());
168
- searchHit .sourceAsMap ().clear ();
169
- searchHit .sourceAsMap ().putAll (matchingHit .sourceAsMap ());
167
+ searchHit .getSourceAsMap ().clear ();
168
+ searchHit .getSourceAsMap ().putAll (matchingHit .getSourceAsMap ());
170
169
String t1Alias = requestBuilder .getFirstTable ().getAlias ();
171
170
String t2Alias = requestBuilder .getSecondTable ().getAlias ();
172
171
mergeSourceAndAddAliases (copiedSource , searchHit , t1Alias , t2Alias );
@@ -210,10 +209,10 @@ private void createKeyToResultsAndFillOptimizationStructure(Map<String,Map<Strin
210
209
String key = getComparisonKey (t1ToT2FieldsComparison , hit , true , optimizationTermsFilterStructure .get (comparisonID ));
211
210
212
211
//int docid , id
213
- InternalSearchHit searchHit = new InternalSearchHit (resultIds , hit .id (), new Text (hit .getType ()), hit .getFields ());
212
+ SearchHit searchHit = new SearchHit (resultIds , hit .getId (), new Text (hit .getType ()), hit .getFields ());
214
213
searchHit .sourceRef (hit .getSourceRef ());
215
214
216
- onlyReturnedFields (searchHit .sourceAsMap (), firstTableRequest .getReturnedFields (),firstTableRequest .getOriginalSelect ().isSelectAll ());
215
+ onlyReturnedFields (searchHit .getSourceAsMap (), firstTableRequest .getReturnedFields (),firstTableRequest .getOriginalSelect ().isSelectAll ());
217
216
resultIds ++;
218
217
this .hashJoinComparisonStructure .insertIntoComparisonHash (comparisonID , key , searchHit );
219
218
}
@@ -238,7 +237,7 @@ private List<SearchHit> scrollTillLimit(TableInJoinRequestBuilder tableInJoinReq
238
237
updateMetaSearchResults (scrollResp );
239
238
List <SearchHit > hitsWithScan = new ArrayList <>();
240
239
int curentNumOfResults = 0 ;
241
- SearchHit [] hits = scrollResp .getHits ().hits ();
240
+ SearchHit [] hits = scrollResp .getHits ().getHits ();
242
241
243
242
if (hintLimit == null ) hintLimit = MAX_RESULTS_FOR_FIRST_TABLE ;
244
243
@@ -295,7 +294,7 @@ private void updateRequestWithTermsFilter(Map<String,Map<String, List<Object>>>
295
294
296
295
private String getComparisonKey (List <Map .Entry <Field , Field >> t1ToT2FieldsComparison , SearchHit hit , boolean firstTable , Map <String , List <Object >> optimizationTermsFilterStructure ) {
297
296
String key = "" ;
298
- Map <String , Object > sourceAsMap = hit .sourceAsMap ();
297
+ Map <String , Object > sourceAsMap = hit .getSourceAsMap ();
299
298
for (Map .Entry <Field , Field > t1ToT2 : t1ToT2FieldsComparison ) {
300
299
//todo: change to our function find if key contains '.'
301
300
String name ;
0 commit comments