nice usage of versioning parse element
This commit is contained in:
parent
ac8646deb7
commit
3062d5b86c
|
@ -24,7 +24,6 @@ import org.elasticsearch.common.collect.ImmutableMap;
|
|||
import org.elasticsearch.search.SearchParseElement;
|
||||
import org.elasticsearch.search.fetch.FetchPhaseExecutionException;
|
||||
import org.elasticsearch.search.fetch.SearchHitPhase;
|
||||
import org.elasticsearch.search.fetch.version.VersionParseElement;
|
||||
import org.elasticsearch.search.internal.SearchContext;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -36,7 +35,7 @@ import java.util.Map;
|
|||
public class ExplainSearchHitPhase implements SearchHitPhase {
|
||||
|
||||
@Override public Map<String, ? extends SearchParseElement> parseElements() {
|
||||
return ImmutableMap.of("explain", new ExplainParseElement(), "version", new VersionParseElement());
|
||||
return ImmutableMap.of("explain", new ExplainParseElement());
|
||||
}
|
||||
|
||||
@Override public boolean executionNeeded(SearchContext context) {
|
||||
|
|
|
@ -36,18 +36,14 @@ import java.util.Map;
|
|||
public class VersionSearchHitPhase implements SearchHitPhase {
|
||||
|
||||
@Override public Map<String, ? extends SearchParseElement> parseElements() {
|
||||
return ImmutableMap.of();
|
||||
return ImmutableMap.of("version", new VersionParseElement());
|
||||
}
|
||||
|
||||
@Override public boolean executionNeeded(SearchContext context) {
|
||||
return true;
|
||||
return context.version();
|
||||
}
|
||||
|
||||
@Override public void execute(SearchContext context, HitContext hitContext) throws ElasticSearchException {
|
||||
if (!context.version()) {
|
||||
hitContext.hit().version(-1);
|
||||
return;
|
||||
}
|
||||
// it might make sense to cache the TermDocs on a shared fetch context and just skip here)
|
||||
// it is going to mean we work on the high level multi reader and not the lower level reader as is
|
||||
// the case below...
|
||||
|
|
|
@ -114,10 +114,17 @@ public class SimpleVersioningTests extends AbstractNodesTests {
|
|||
assertThat(client.prepareGet("test", "type", "1").execute().actionGet().version(), equalTo(2l));
|
||||
}
|
||||
|
||||
// search with versioning
|
||||
for (int i = 0; i < 10; i++) {
|
||||
SearchResponse searchResponse = client.prepareSearch().setQuery(matchAllQuery()).setVersion(true).execute().actionGet();
|
||||
assertThat(searchResponse.hits().getAt(0).version(), equalTo(2l));
|
||||
}
|
||||
|
||||
// search without versioning
|
||||
for (int i = 0; i < 10; i++) {
|
||||
SearchResponse searchResponse = client.prepareSearch().setQuery(matchAllQuery()).execute().actionGet();
|
||||
assertThat(searchResponse.hits().getAt(0).version(), equalTo(-1l));
|
||||
}
|
||||
}
|
||||
|
||||
@Test public void testSimpleVersioningWithFlush() throws Exception {
|
||||
|
|
Loading…
Reference in New Issue