19
19
20
20
package org .elasticsearch .action .explain ;
21
21
22
- import com .google .common .collect .ImmutableMap ;
23
22
import org .apache .lucene .index .Term ;
24
- import org .apache .lucene .search .* ;
23
+ import org .apache .lucene .search .Explanation ;
25
24
import org .elasticsearch .ElasticSearchException ;
26
25
import org .elasticsearch .action .support .single .shard .TransportShardSingleOperationAction ;
27
26
import org .elasticsearch .cluster .ClusterService ;
28
27
import org .elasticsearch .cluster .ClusterState ;
29
28
import org .elasticsearch .cluster .block .ClusterBlockException ;
30
29
import org .elasticsearch .cluster .block .ClusterBlockLevel ;
31
30
import org .elasticsearch .cluster .routing .ShardIterator ;
32
- import org .elasticsearch .common .bytes .BytesReference ;
33
31
import org .elasticsearch .common .inject .Inject ;
34
32
import org .elasticsearch .common .settings .Settings ;
35
33
import org .elasticsearch .common .xcontent .XContentFactory ;
36
34
import org .elasticsearch .common .xcontent .XContentHelper ;
37
35
import org .elasticsearch .common .xcontent .XContentParser ;
38
36
import org .elasticsearch .index .engine .Engine ;
39
- import org .elasticsearch .index .mapper .ParsedDocument ;
40
37
import org .elasticsearch .index .mapper .Uid ;
41
38
import org .elasticsearch .index .mapper .internal .UidFieldMapper ;
42
39
import org .elasticsearch .index .query .ParsedQuery ;
43
40
import org .elasticsearch .index .service .IndexService ;
44
41
import org .elasticsearch .index .shard .service .IndexShard ;
45
42
import org .elasticsearch .indices .IndicesService ;
46
43
import org .elasticsearch .script .ScriptService ;
47
- import org .elasticsearch .search .SearchParseElement ;
48
44
import org .elasticsearch .search .internal .InternalSearchRequest ;
49
45
import org .elasticsearch .search .internal .SearchContext ;
50
- import org .elasticsearch .search .query .QueryParseElement ;
51
46
import org .elasticsearch .threadpool .ThreadPool ;
52
47
import org .elasticsearch .transport .TransportService ;
53
48
54
49
import java .io .IOException ;
55
- import java .util .Map ;
56
50
57
51
/**
58
52
* Explain transport action. Computes the explain on the targeted shard.
@@ -105,11 +99,12 @@ protected ExplainResponse shardOperation(ExplainRequest request, int shardId) th
105
99
scriptService
106
100
);
107
101
SearchContext .setCurrent (context );
108
- context .parsedQuery (retrieveParsedQuery (request , indexService ));
109
- context .preProcess ();
110
- int topLevelDocId = result .docIdAndVersion ().docId + result .docIdAndVersion ().docStart ;
111
102
112
103
try {
104
+ context .parsedQuery (parseQuery (request , indexService ));
105
+ context .preProcess ();
106
+ int topLevelDocId = result .docIdAndVersion ().docId + result .docIdAndVersion ().docStart ;
107
+
113
108
Explanation explanation = context .searcher ().explain (context .query (), topLevelDocId );
114
109
return new ExplainResponse (true , explanation );
115
110
} catch (IOException e ) {
@@ -120,7 +115,7 @@ protected ExplainResponse shardOperation(ExplainRequest request, int shardId) th
120
115
}
121
116
}
122
117
123
- private ParsedQuery retrieveParsedQuery (ExplainRequest request , IndexService indexService ) {
118
+ private ParsedQuery parseQuery (ExplainRequest request , IndexService indexService ) {
124
119
try {
125
120
XContentParser parser = XContentHelper .createParser (request .source ());
126
121
for (XContentParser .Token token = parser .nextToken (); token != XContentParser .Token .END_OBJECT ; token = parser .nextToken ()) {
0 commit comments