Merge branch 'master' into feature/query-refactoring

Conflicts:
	core/src/main/java/org/elasticsearch/index/query/HasChildQueryBuilder.java
	core/src/main/java/org/elasticsearch/index/query/HasChildQueryParser.java
	core/src/main/java/org/elasticsearch/index/query/HasParentQueryBuilder.java
	core/src/main/java/org/elasticsearch/index/query/HasParentQueryParser.java
	core/src/main/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryBuilder.java
	core/src/main/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryParser.java
	core/src/main/java/org/elasticsearch/index/query/functionscore/factor/FactorParser.java
	core/src/test/java/org/elasticsearch/ExceptionSerializationTests.java
	core/src/test/java/org/elasticsearch/benchmark/search/child/ChildSearchBenchmark.java
	core/src/test/java/org/elasticsearch/benchmark/search/child/ChildSearchShortCircuitBenchmark.java
	core/src/test/java/org/elasticsearch/index/query/SimpleIndexQueryParserTests.java
	core/src/test/java/org/elasticsearch/percolator/PercolatorIT.java
	core/src/test/java/org/elasticsearch/search/child/ChildQuerySearchIT.java
	docs/reference/query-dsl/has-parent-query.asciidoc
This commit is contained in:
javanna 2015-09-11 14:15:12 +02:00 committed by Luca Cavanna
commit 73f7df510e
386 changed files with 2021 additions and 1999 deletions

View File

@ -58,28 +58,28 @@ public class CustomFieldQuery extends FieldQuery {
} }
@Override @Override
void flatten(Query sourceQuery, IndexReader reader, Collection<Query> flatQueries) throws IOException { void flatten(Query sourceQuery, IndexReader reader, Collection<Query> flatQueries, float boost) throws IOException {
if (sourceQuery instanceof SpanTermQuery) { if (sourceQuery instanceof SpanTermQuery) {
super.flatten(new TermQuery(((SpanTermQuery) sourceQuery).getTerm()), reader, flatQueries); super.flatten(new TermQuery(((SpanTermQuery) sourceQuery).getTerm()), reader, flatQueries, boost);
} else if (sourceQuery instanceof ConstantScoreQuery) { } else if (sourceQuery instanceof ConstantScoreQuery) {
flatten(((ConstantScoreQuery) sourceQuery).getQuery(), reader, flatQueries); flatten(((ConstantScoreQuery) sourceQuery).getQuery(), reader, flatQueries, boost);
} else if (sourceQuery instanceof FunctionScoreQuery) { } else if (sourceQuery instanceof FunctionScoreQuery) {
flatten(((FunctionScoreQuery) sourceQuery).getSubQuery(), reader, flatQueries); flatten(((FunctionScoreQuery) sourceQuery).getSubQuery(), reader, flatQueries, boost);
} else if (sourceQuery instanceof FilteredQuery) { } else if (sourceQuery instanceof FilteredQuery) {
flatten(((FilteredQuery) sourceQuery).getQuery(), reader, flatQueries); flatten(((FilteredQuery) sourceQuery).getQuery(), reader, flatQueries, boost);
flatten(((FilteredQuery) sourceQuery).getFilter(), reader, flatQueries); flatten(((FilteredQuery) sourceQuery).getFilter(), reader, flatQueries);
} else if (sourceQuery instanceof MultiPhrasePrefixQuery) { } else if (sourceQuery instanceof MultiPhrasePrefixQuery) {
flatten(sourceQuery.rewrite(reader), reader, flatQueries); flatten(sourceQuery.rewrite(reader), reader, flatQueries, boost);
} else if (sourceQuery instanceof FiltersFunctionScoreQuery) { } else if (sourceQuery instanceof FiltersFunctionScoreQuery) {
flatten(((FiltersFunctionScoreQuery) sourceQuery).getSubQuery(), reader, flatQueries); flatten(((FiltersFunctionScoreQuery) sourceQuery).getSubQuery(), reader, flatQueries, boost);
} else if (sourceQuery instanceof MultiPhraseQuery) { } else if (sourceQuery instanceof MultiPhraseQuery) {
MultiPhraseQuery q = ((MultiPhraseQuery) sourceQuery); MultiPhraseQuery q = ((MultiPhraseQuery) sourceQuery);
convertMultiPhraseQuery(0, new int[q.getTermArrays().size()], q, q.getTermArrays(), q.getPositions(), reader, flatQueries); convertMultiPhraseQuery(0, new int[q.getTermArrays().size()], q, q.getTermArrays(), q.getPositions(), reader, flatQueries);
} else if (sourceQuery instanceof BlendedTermQuery) { } else if (sourceQuery instanceof BlendedTermQuery) {
final BlendedTermQuery blendedTermQuery = (BlendedTermQuery) sourceQuery; final BlendedTermQuery blendedTermQuery = (BlendedTermQuery) sourceQuery;
flatten(blendedTermQuery.rewrite(reader), reader, flatQueries); flatten(blendedTermQuery.rewrite(reader), reader, flatQueries, boost);
} else { } else {
super.flatten(sourceQuery, reader, flatQueries); super.flatten(sourceQuery, reader, flatQueries, boost);
} }
} }
@ -93,7 +93,7 @@ public class CustomFieldQuery extends FieldQuery {
if (numTerms > 16) { if (numTerms > 16) {
for (Term[] currentPosTerm : terms) { for (Term[] currentPosTerm : terms) {
for (Term term : currentPosTerm) { for (Term term : currentPosTerm) {
super.flatten(new TermQuery(term), reader, flatQueries); super.flatten(new TermQuery(term), reader, flatQueries, orig.getBoost());
} }
} }
return; return;
@ -111,7 +111,7 @@ public class CustomFieldQuery extends FieldQuery {
} }
PhraseQuery query = queryBuilder.build(); PhraseQuery query = queryBuilder.build();
query.setBoost(orig.getBoost()); query.setBoost(orig.getBoost());
this.flatten(query, reader, flatQueries); this.flatten(query, reader, flatQueries, orig.getBoost());
} else { } else {
Term[] t = terms.get(currentPos); Term[] t = terms.get(currentPos);
for (int i = 0; i < t.length; i++) { for (int i = 0; i < t.length; i++) {
@ -127,7 +127,7 @@ public class CustomFieldQuery extends FieldQuery {
return; return;
} }
if (sourceFilter instanceof QueryWrapperFilter) { if (sourceFilter instanceof QueryWrapperFilter) {
flatten(((QueryWrapperFilter) sourceFilter).getQuery(), reader, flatQueries); flatten(((QueryWrapperFilter) sourceFilter).getQuery(), reader, flatQueries, 1.0F);
} }
} }
} }

View File

@ -19,12 +19,13 @@
package org.elasticsearch.action; package org.elasticsearch.action;
import com.google.common.base.Preconditions;
import org.elasticsearch.action.support.PlainListenableActionFuture; import org.elasticsearch.action.support.PlainListenableActionFuture;
import org.elasticsearch.client.ElasticsearchClient; import org.elasticsearch.client.ElasticsearchClient;
import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.threadpool.ThreadPool;
import java.util.Objects;
/** /**
* *
*/ */
@ -36,7 +37,7 @@ public abstract class ActionRequestBuilder<Request extends ActionRequest, Respon
protected final ElasticsearchClient client; protected final ElasticsearchClient client;
protected ActionRequestBuilder(ElasticsearchClient client, Action<Request, Response, RequestBuilder> action, Request request) { protected ActionRequestBuilder(ElasticsearchClient client, Action<Request, Response, RequestBuilder> action, Request request) {
Preconditions.checkNotNull(action, "action must not be null"); Objects.requireNonNull(action, "action must not be null");
this.action = action; this.action = action;
this.request = request; this.request = request;
this.client = client; this.client = client;

View File

@ -36,11 +36,10 @@ import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.threadpool.ThreadPool;
import org.elasticsearch.transport.TransportService; import org.elasticsearch.transport.TransportService;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import static com.google.common.collect.Sets.newHashSet;
/** /**
*/ */
public class TransportClusterSearchShardsAction extends TransportMasterNodeReadAction<ClusterSearchShardsRequest, ClusterSearchShardsResponse> { public class TransportClusterSearchShardsAction extends TransportMasterNodeReadAction<ClusterSearchShardsRequest, ClusterSearchShardsResponse> {
@ -72,7 +71,7 @@ public class TransportClusterSearchShardsAction extends TransportMasterNodeReadA
ClusterState clusterState = clusterService.state(); ClusterState clusterState = clusterService.state();
String[] concreteIndices = indexNameExpressionResolver.concreteIndices(clusterState, request); String[] concreteIndices = indexNameExpressionResolver.concreteIndices(clusterState, request);
Map<String, Set<String>> routingMap = indexNameExpressionResolver.resolveSearchRouting(state, request.routing(), request.indices()); Map<String, Set<String>> routingMap = indexNameExpressionResolver.resolveSearchRouting(state, request.routing(), request.indices());
Set<String> nodeIds = newHashSet(); Set<String> nodeIds = new HashSet<>();
GroupShardsIterator groupShardsIterator = clusterService.operationRouting().searchShards(clusterState, concreteIndices, routingMap, request.preference()); GroupShardsIterator groupShardsIterator = clusterService.operationRouting().searchShards(clusterState, concreteIndices, routingMap, request.preference());
ShardRouting shard; ShardRouting shard;
ClusterSearchShardsGroup[] groupResponses = new ClusterSearchShardsGroup[groupShardsIterator.size()]; ClusterSearchShardsGroup[] groupResponses = new ClusterSearchShardsGroup[groupShardsIterator.size()];

View File

@ -33,12 +33,11 @@ import org.elasticsearch.common.xcontent.XContentFactory;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import static com.google.common.collect.Sets.newHashSet;
/** /**
* Status of a snapshot * Status of a snapshot
*/ */
@ -103,7 +102,7 @@ public class SnapshotStatus implements ToXContent, Streamable {
ImmutableMap.Builder<String, SnapshotIndexStatus> indicesStatus = ImmutableMap.builder(); ImmutableMap.Builder<String, SnapshotIndexStatus> indicesStatus = ImmutableMap.builder();
Set<String> indices = newHashSet(); Set<String> indices = new HashSet<>();
for (SnapshotIndexShardStatus shard : shards) { for (SnapshotIndexShardStatus shard : shards) {
indices.add(shard.getIndex()); indices.add(shard.getIndex());
} }

View File

@ -44,12 +44,11 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import static com.google.common.collect.Sets.newHashSet;
/** /**
*/ */
public class TransportSnapshotsStatusAction extends TransportMasterNodeAction<SnapshotsStatusRequest, SnapshotsStatusResponse> { public class TransportSnapshotsStatusAction extends TransportMasterNodeAction<SnapshotsStatusRequest, SnapshotsStatusResponse> {
@ -94,7 +93,7 @@ public class TransportSnapshotsStatusAction extends TransportMasterNodeAction<Sn
return; return;
} }
Set<String> nodesIds = newHashSet(); Set<String> nodesIds = new HashSet<>();
for (SnapshotsInProgress.Entry entry : currentSnapshots) { for (SnapshotsInProgress.Entry entry : currentSnapshots) {
for (SnapshotsInProgress.ShardSnapshotStatus status : entry.shards().values()) { for (SnapshotsInProgress.ShardSnapshotStatus status : entry.shards().values()) {
if (status.nodeId() != null) { if (status.nodeId() != null) {
@ -140,7 +139,7 @@ public class TransportSnapshotsStatusAction extends TransportMasterNodeAction<Sn
TransportNodesSnapshotsStatus.NodesSnapshotStatus nodeSnapshotStatuses) throws IOException { TransportNodesSnapshotsStatus.NodesSnapshotStatus nodeSnapshotStatuses) throws IOException {
// First process snapshot that are currently processed // First process snapshot that are currently processed
List<SnapshotStatus> builder = new ArrayList<>(); List<SnapshotStatus> builder = new ArrayList<>();
Set<SnapshotId> currentSnapshotIds = newHashSet(); Set<SnapshotId> currentSnapshotIds = new HashSet<>();
if (!currentSnapshots.isEmpty()) { if (!currentSnapshots.isEmpty()) {
Map<String, TransportNodesSnapshotsStatus.NodeSnapshotStatus> nodeSnapshotStatusMap; Map<String, TransportNodesSnapshotsStatus.NodeSnapshotStatus> nodeSnapshotStatusMap;
if (nodeSnapshotStatuses != null) { if (nodeSnapshotStatuses != null) {

View File

@ -19,7 +19,6 @@
package org.elasticsearch.action.admin.indices.alias; package org.elasticsearch.action.admin.indices.alias;
import com.google.common.collect.Sets;
import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest.AliasActions; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest.AliasActions;
import org.elasticsearch.action.support.ActionFilters; import org.elasticsearch.action.support.ActionFilters;
@ -38,7 +37,11 @@ import org.elasticsearch.rest.action.admin.indices.alias.delete.AliasesNotFoundE
import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.threadpool.ThreadPool;
import org.elasticsearch.transport.TransportService; import org.elasticsearch.transport.TransportService;
import java.util.*; import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/** /**
* Add/remove aliases action * Add/remove aliases action
@ -68,7 +71,7 @@ public class TransportIndicesAliasesAction extends TransportMasterNodeAction<Ind
@Override @Override
protected ClusterBlockException checkBlock(IndicesAliasesRequest request, ClusterState state) { protected ClusterBlockException checkBlock(IndicesAliasesRequest request, ClusterState state) {
Set<String> indices = Sets.newHashSet(); Set<String> indices = new HashSet<>();
for (AliasActions aliasAction : request.aliasActions()) { for (AliasActions aliasAction : request.aliasActions()) {
for (String index : aliasAction.indices()) { for (String index : aliasAction.indices()) {
indices.add(index); indices.add(index);

View File

@ -19,7 +19,6 @@
package org.elasticsearch.action.admin.indices.create; package org.elasticsearch.action.admin.indices.create;
import com.google.common.collect.Sets;
import org.elasticsearch.action.admin.indices.alias.Alias; import org.elasticsearch.action.admin.indices.alias.Alias;
import org.elasticsearch.cluster.ack.ClusterStateUpdateRequest; import org.elasticsearch.cluster.ack.ClusterStateUpdateRequest;
import org.elasticsearch.cluster.block.ClusterBlock; import org.elasticsearch.cluster.block.ClusterBlock;
@ -28,6 +27,7 @@ import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.transport.TransportMessage; import org.elasticsearch.transport.TransportMessage;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -47,11 +47,11 @@ public class CreateIndexClusterStateUpdateRequest extends ClusterStateUpdateRequ
private final Map<String, String> mappings = new HashMap<>(); private final Map<String, String> mappings = new HashMap<>();
private final Set<Alias> aliases = Sets.newHashSet(); private final Set<Alias> aliases = new HashSet<>();
private final Map<String, IndexMetaData.Custom> customs = new HashMap<>(); private final Map<String, IndexMetaData.Custom> customs = new HashMap<>();
private final Set<ClusterBlock> blocks = Sets.newHashSet(); private final Set<ClusterBlock> blocks = new HashSet<>();
CreateIndexClusterStateUpdateRequest(TransportMessage originalMessage, String cause, String index, boolean updateAllTypes) { CreateIndexClusterStateUpdateRequest(TransportMessage originalMessage, String cause, String index, boolean updateAllTypes) {

View File

@ -20,7 +20,6 @@
package org.elasticsearch.action.admin.indices.create; package org.elasticsearch.action.admin.indices.create;
import com.google.common.base.Charsets; import com.google.common.base.Charsets;
import com.google.common.collect.Sets;
import org.elasticsearch.ElasticsearchGenerationException; import org.elasticsearch.ElasticsearchGenerationException;
import org.elasticsearch.ElasticsearchParseException; import org.elasticsearch.ElasticsearchParseException;
import org.elasticsearch.action.ActionRequest; import org.elasticsearch.action.ActionRequest;
@ -45,6 +44,7 @@ import org.elasticsearch.common.xcontent.XContentType;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -72,7 +72,7 @@ public class CreateIndexRequest extends AcknowledgedRequest<CreateIndexRequest>
private final Map<String, String> mappings = new HashMap<>(); private final Map<String, String> mappings = new HashMap<>();
private final Set<Alias> aliases = Sets.newHashSet(); private final Set<Alias> aliases = new HashSet<>();
private final Map<String, IndexMetaData.Custom> customs = new HashMap<>(); private final Map<String, IndexMetaData.Custom> customs = new HashMap<>();

View File

@ -19,7 +19,6 @@
package org.elasticsearch.action.admin.indices.segments; package org.elasticsearch.action.admin.indices.segments;
import com.google.common.collect.Sets;
import org.apache.lucene.util.Accountable; import org.apache.lucene.util.Accountable;
import org.elasticsearch.action.ShardOperationFailedException; import org.elasticsearch.action.ShardOperationFailedException;
import org.elasticsearch.action.support.broadcast.BroadcastResponse; import org.elasticsearch.action.support.broadcast.BroadcastResponse;
@ -35,6 +34,7 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -60,7 +60,7 @@ public class IndicesSegmentResponse extends BroadcastResponse implements ToXCont
} }
Map<String, IndexSegments> indicesSegments = new HashMap<>(); Map<String, IndexSegments> indicesSegments = new HashMap<>();
Set<String> indices = Sets.newHashSet(); Set<String> indices = new HashSet<>();
for (ShardSegments shard : shards) { for (ShardSegments shard : shards) {
indices.add(shard.getShardRouting().getIndex()); indices.add(shard.getShardRouting().getIndex());
} }

View File

@ -20,7 +20,6 @@
package org.elasticsearch.action.admin.indices.stats; package org.elasticsearch.action.admin.indices.stats;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Sets;
import org.elasticsearch.action.ShardOperationFailedException; import org.elasticsearch.action.ShardOperationFailedException;
import org.elasticsearch.action.support.broadcast.BroadcastResponse; import org.elasticsearch.action.support.broadcast.BroadcastResponse;
import org.elasticsearch.cluster.routing.ShardRouting; import org.elasticsearch.cluster.routing.ShardRouting;
@ -34,6 +33,7 @@ import org.elasticsearch.common.xcontent.XContentFactory;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -87,7 +87,7 @@ public class IndicesStatsResponse extends BroadcastResponse implements ToXConten
} }
Map<String, IndexStats> indicesStats = new HashMap<>(); Map<String, IndexStats> indicesStats = new HashMap<>();
Set<String> indices = Sets.newHashSet(); Set<String> indices = new HashSet<>();
for (ShardStats shard : shards) { for (ShardStats shard : shards) {
indices.add(shard.getShardRouting().getIndex()); indices.add(shard.getShardRouting().getIndex());
} }

View File

@ -42,10 +42,10 @@ import org.elasticsearch.common.xcontent.support.XContentMapValues;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import static com.google.common.collect.Sets.newHashSet;
import static org.elasticsearch.action.ValidateActions.addValidationError; import static org.elasticsearch.action.ValidateActions.addValidationError;
import static org.elasticsearch.common.settings.Settings.Builder.EMPTY_SETTINGS; import static org.elasticsearch.common.settings.Settings.Builder.EMPTY_SETTINGS;
import static org.elasticsearch.common.settings.Settings.readSettingsFromStream; import static org.elasticsearch.common.settings.Settings.readSettingsFromStream;
@ -70,7 +70,7 @@ public class PutIndexTemplateRequest extends MasterNodeRequest<PutIndexTemplateR
private Map<String, String> mappings = new HashMap<>(); private Map<String, String> mappings = new HashMap<>();
private final Set<Alias> aliases = newHashSet(); private final Set<Alias> aliases = new HashSet<>();
private Map<String, IndexMetaData.Custom> customs = new HashMap<>(); private Map<String, IndexMetaData.Custom> customs = new HashMap<>();

View File

@ -19,7 +19,6 @@
package org.elasticsearch.action.admin.indices.upgrade.get; package org.elasticsearch.action.admin.indices.upgrade.get;
import com.google.common.collect.Sets;
import org.elasticsearch.action.ShardOperationFailedException; import org.elasticsearch.action.ShardOperationFailedException;
import org.elasticsearch.action.support.broadcast.BroadcastResponse; import org.elasticsearch.action.support.broadcast.BroadcastResponse;
import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamInput;
@ -31,6 +30,7 @@ import org.elasticsearch.common.xcontent.XContentBuilderString;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -54,7 +54,7 @@ public class UpgradeStatusResponse extends BroadcastResponse implements ToXConte
} }
Map<String, IndexUpgradeStatus> indicesUpgradeStats = new HashMap<>(); Map<String, IndexUpgradeStatus> indicesUpgradeStats = new HashMap<>();
Set<String> indices = Sets.newHashSet(); Set<String> indices = new HashSet<>();
for (ShardUpgradeStatus shard : shards) { for (ShardUpgradeStatus shard : shards) {
indices.add(shard.getIndex()); indices.add(shard.getIndex());
} }

View File

@ -46,12 +46,11 @@ import org.elasticsearch.transport.TransportService;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import static com.google.common.collect.Sets.newHashSet;
/** /**
* Upgrade index/indices action. * Upgrade index/indices action.
*/ */
@ -158,7 +157,7 @@ public class TransportUpgradeAction extends TransportBroadcastByNodeAction<Upgra
* Finds all indices that have not all primaries available * Finds all indices that have not all primaries available
*/ */
private Set<String> indicesWithMissingPrimaries(ClusterState clusterState, String[] concreteIndices) { private Set<String> indicesWithMissingPrimaries(ClusterState clusterState, String[] concreteIndices) {
Set<String> indices = newHashSet(); Set<String> indices = new HashSet<>();
RoutingTable routingTable = clusterState.routingTable(); RoutingTable routingTable = clusterState.routingTable();
for (String index : concreteIndices) { for (String index : concreteIndices) {
IndexRoutingTable indexRoutingTable = routingTable.index(index); IndexRoutingTable indexRoutingTable = routingTable.index(index);

View File

@ -19,7 +19,6 @@
package org.elasticsearch.action.termvectors; package org.elasticsearch.action.termvectors;
import com.google.common.collect.Sets;
import org.elasticsearch.ElasticsearchException; import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.ElasticsearchParseException; import org.elasticsearch.ElasticsearchParseException;
import org.elasticsearch.action.ActionRequestValidationException; import org.elasticsearch.action.ActionRequestValidationException;
@ -33,6 +32,7 @@ import org.elasticsearch.common.bytes.BytesReference;
import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.lucene.uid.Versions; import org.elasticsearch.common.lucene.uid.Versions;
import org.elasticsearch.common.util.set.Sets;
import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.index.VersionType; import org.elasticsearch.index.VersionType;

View File

@ -26,6 +26,7 @@ import org.elasticsearch.common.logging.ESLogger;
import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.logging.Loggers;
import java.io.IOException; import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.nio.file.FileVisitResult; import java.nio.file.FileVisitResult;
@ -70,21 +71,43 @@ public class JarHell {
} }
/** /**
* Checks the current classloader for duplicate classes * Checks the current classpath for duplicate classes
* @throws IllegalStateException if jar hell was found * @throws IllegalStateException if jar hell was found
*/ */
public static void checkJarHell() throws Exception { public static void checkJarHell() throws Exception {
ClassLoader loader = JarHell.class.getClassLoader(); ClassLoader loader = JarHell.class.getClassLoader();
if (loader instanceof URLClassLoader == false) {
return;
}
ESLogger logger = Loggers.getLogger(JarHell.class); ESLogger logger = Loggers.getLogger(JarHell.class);
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("java.class.path: {}", System.getProperty("java.class.path")); logger.debug("java.class.path: {}", System.getProperty("java.class.path"));
logger.debug("sun.boot.class.path: {}", System.getProperty("sun.boot.class.path")); logger.debug("sun.boot.class.path: {}", System.getProperty("sun.boot.class.path"));
if (loader instanceof URLClassLoader ) {
logger.debug("classloader urls: {}", Arrays.toString(((URLClassLoader)loader).getURLs())); logger.debug("classloader urls: {}", Arrays.toString(((URLClassLoader)loader).getURLs()));
} }
checkJarHell(((URLClassLoader) loader).getURLs()); }
checkJarHell(parseClassPath());
}
/**
* Parses the classpath into a set of URLs
*/
@SuppressForbidden(reason = "resolves against CWD because that is how classpaths work")
public static URL[] parseClassPath() {
String elements[] = System.getProperty("java.class.path").split(System.getProperty("path.separator"));
URL urlElements[] = new URL[elements.length];
for (int i = 0; i < elements.length; i++) {
String element = elements[i];
// empty classpath element behaves like CWD.
if (element.isEmpty()) {
element = System.getProperty("user.dir");
}
try {
urlElements[i] = PathUtils.get(element).toUri().toURL();
} catch (MalformedURLException e) {
// should not happen, as we use the filesystem API
throw new RuntimeException(e);
}
}
return urlElements;
} }
/** /**

View File

@ -24,7 +24,6 @@ import org.elasticsearch.env.Environment;
import java.io.*; import java.io.*;
import java.net.URL; import java.net.URL;
import java.net.URLClassLoader;
import java.nio.file.AccessMode; import java.nio.file.AccessMode;
import java.nio.file.FileAlreadyExistsException; import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files; import java.nio.file.Files;
@ -133,9 +132,7 @@ final class Security {
*/ */
@SuppressForbidden(reason = "proper use of URL") @SuppressForbidden(reason = "proper use of URL")
static void setCodebaseProperties() { static void setCodebaseProperties() {
ClassLoader loader = Security.class.getClassLoader(); for (URL url : JarHell.parseClassPath()) {
if (loader instanceof URLClassLoader) {
for (URL url : ((URLClassLoader)loader).getURLs()) {
for (Map.Entry<Pattern,String> e : SPECIAL_JARS.entrySet()) { for (Map.Entry<Pattern,String> e : SPECIAL_JARS.entrySet()) {
if (e.getKey().matcher(url.getPath()).matches()) { if (e.getKey().matcher(url.getPath()).matches()) {
String prop = e.getValue(); String prop = e.getValue();
@ -151,10 +148,6 @@ final class Security {
System.setProperty(prop, "file:/dev/null"); // no chance to be interpreted as "all" System.setProperty(prop, "file:/dev/null"); // no chance to be interpreted as "all"
} }
} }
} else {
// we could try to parse the classpath or something, but screw it for now.
throw new UnsupportedOperationException("Unsupported system classloader type: " + loader.getClass());
}
} }
/** returns dynamic Permissions to configured paths */ /** returns dynamic Permissions to configured paths */

View File

@ -20,7 +20,6 @@
package org.elasticsearch.client.transport; package org.elasticsearch.client.transport;
import com.carrotsearch.hppc.cursors.ObjectCursor; import com.carrotsearch.hppc.cursors.ObjectCursor;
import com.google.common.collect.Sets;
import org.elasticsearch.ExceptionsHelper; import org.elasticsearch.ExceptionsHelper;
import org.elasticsearch.Version; import org.elasticsearch.Version;
import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.ActionListener;
@ -396,7 +395,7 @@ public class TransportClientNodesService extends AbstractComponent {
protected void doSample() { protected void doSample() {
// the nodes we are going to ping include the core listed nodes that were added // the nodes we are going to ping include the core listed nodes that were added
// and the last round of discovered nodes // and the last round of discovered nodes
Set<DiscoveryNode> nodesToPing = Sets.newHashSet(); Set<DiscoveryNode> nodesToPing = new HashSet<>();
for (DiscoveryNode node : listedNodes) { for (DiscoveryNode node : listedNodes) {
nodesToPing.add(node); nodesToPing.add(node);
} }

View File

@ -90,6 +90,7 @@ import org.elasticsearch.indices.recovery.RecoverySettings;
import org.elasticsearch.indices.store.IndicesStore; import org.elasticsearch.indices.store.IndicesStore;
import org.elasticsearch.indices.ttl.IndicesTTLService; import org.elasticsearch.indices.ttl.IndicesTTLService;
import org.elasticsearch.search.SearchService; import org.elasticsearch.search.SearchService;
import org.elasticsearch.search.internal.DefaultSearchContext;
import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.threadpool.ThreadPool;
import org.elasticsearch.transport.TransportService; import org.elasticsearch.transport.TransportService;
@ -275,6 +276,7 @@ public class ClusterModule extends AbstractModule {
registerIndexDynamicSetting(IndicesRequestCache.INDEX_CACHE_REQUEST_ENABLED, Validator.BOOLEAN); registerIndexDynamicSetting(IndicesRequestCache.INDEX_CACHE_REQUEST_ENABLED, Validator.BOOLEAN);
registerIndexDynamicSetting(IndicesRequestCache.DEPRECATED_INDEX_CACHE_REQUEST_ENABLED, Validator.BOOLEAN); registerIndexDynamicSetting(IndicesRequestCache.DEPRECATED_INDEX_CACHE_REQUEST_ENABLED, Validator.BOOLEAN);
registerIndexDynamicSetting(UnassignedInfo.INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING, Validator.TIME); registerIndexDynamicSetting(UnassignedInfo.INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING, Validator.TIME);
registerIndexDynamicSetting(DefaultSearchContext.MAX_RESULT_WINDOW, Validator.POSITIVE_INTEGER);
} }
public void registerIndexDynamicSetting(String setting, Validator validator) { public void registerIndexDynamicSetting(String setting, Validator validator) {

View File

@ -21,7 +21,6 @@ package org.elasticsearch.cluster.block;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import org.elasticsearch.cluster.AbstractDiffable; import org.elasticsearch.cluster.AbstractDiffable;
import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.cluster.metadata.IndexMetaData;
import org.elasticsearch.cluster.metadata.MetaDataIndexStateService; import org.elasticsearch.cluster.metadata.MetaDataIndexStateService;
@ -31,6 +30,7 @@ import org.elasticsearch.rest.RestStatus;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -270,7 +270,7 @@ public class ClusterBlocks extends AbstractDiffable<ClusterBlocks> {
public static class Builder { public static class Builder {
private Set<ClusterBlock> global = Sets.newHashSet(); private Set<ClusterBlock> global = new HashSet<>();
private Map<String, Set<ClusterBlock>> indices = new HashMap<>(); private Map<String, Set<ClusterBlock>> indices = new HashMap<>();
@ -281,7 +281,7 @@ public class ClusterBlocks extends AbstractDiffable<ClusterBlocks> {
global.addAll(blocks.global()); global.addAll(blocks.global());
for (Map.Entry<String, ImmutableSet<ClusterBlock>> entry : blocks.indices().entrySet()) { for (Map.Entry<String, ImmutableSet<ClusterBlock>> entry : blocks.indices().entrySet()) {
if (!indices.containsKey(entry.getKey())) { if (!indices.containsKey(entry.getKey())) {
indices.put(entry.getKey(), Sets.<ClusterBlock>newHashSet()); indices.put(entry.getKey(), new HashSet<>());
} }
indices.get(entry.getKey()).addAll(entry.getValue()); indices.get(entry.getKey()).addAll(entry.getValue());
} }
@ -319,7 +319,7 @@ public class ClusterBlocks extends AbstractDiffable<ClusterBlocks> {
public Builder addIndexBlock(String index, ClusterBlock block) { public Builder addIndexBlock(String index, ClusterBlock block) {
if (!indices.containsKey(index)) { if (!indices.containsKey(index)) {
indices.put(index, Sets.<ClusterBlock>newHashSet()); indices.put(index, new HashSet<>());
} }
indices.get(index).add(block); indices.get(index).add(block);
return this; return this;

View File

@ -20,7 +20,6 @@ package org.elasticsearch.cluster.metadata;
import com.carrotsearch.hppc.cursors.ObjectCursor; import com.carrotsearch.hppc.cursors.ObjectCursor;
import com.carrotsearch.hppc.cursors.ObjectObjectCursor; import com.carrotsearch.hppc.cursors.ObjectObjectCursor;
import com.google.common.collect.Sets;
import org.elasticsearch.cluster.AbstractDiffable; import org.elasticsearch.cluster.AbstractDiffable;
import org.elasticsearch.common.collect.ImmutableOpenMap; import org.elasticsearch.common.collect.ImmutableOpenMap;
import org.elasticsearch.common.collect.MapBuilder; import org.elasticsearch.common.collect.MapBuilder;
@ -29,6 +28,7 @@ import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.settings.loader.SettingsLoader; import org.elasticsearch.common.settings.loader.SettingsLoader;
import org.elasticsearch.common.util.set.Sets;
import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.ToXContent;
import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentFactory;

View File

@ -19,7 +19,6 @@
package org.elasticsearch.cluster.metadata; package org.elasticsearch.cluster.metadata;
import com.carrotsearch.hppc.cursors.ObjectCursor; import com.carrotsearch.hppc.cursors.ObjectCursor;
import com.google.common.collect.Sets;
import org.elasticsearch.action.admin.indices.alias.Alias; import org.elasticsearch.action.admin.indices.alias.Alias;
import org.elasticsearch.action.support.master.MasterNodeRequest; import org.elasticsearch.action.support.master.MasterNodeRequest;
import org.elasticsearch.cluster.ClusterService; import org.elasticsearch.cluster.ClusterService;
@ -39,6 +38,7 @@ import org.elasticsearch.indices.InvalidIndexTemplateException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
@ -76,7 +76,7 @@ public class MetaDataIndexTemplateService extends AbstractComponent {
@Override @Override
public ClusterState execute(ClusterState currentState) { public ClusterState execute(ClusterState currentState) {
Set<String> templateNames = Sets.newHashSet(); Set<String> templateNames = new HashSet<>();
for (ObjectCursor<String> cursor : currentState.metaData().templates().keys()) { for (ObjectCursor<String> cursor : currentState.metaData().templates().keys()) {
String templateName = cursor.value; String templateName = cursor.value;
if (Regex.simpleMatch(request.name, templateName)) { if (Regex.simpleMatch(request.name, templateName)) {

View File

@ -20,8 +20,6 @@
package org.elasticsearch.cluster.metadata; package org.elasticsearch.cluster.metadata;
import com.carrotsearch.hppc.cursors.ObjectCursor; import com.carrotsearch.hppc.cursors.ObjectCursor;
import com.google.common.collect.Sets;
import org.elasticsearch.Version;
import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingClusterStateUpdateRequest; import org.elasticsearch.action.admin.indices.mapping.put.PutMappingClusterStateUpdateRequest;
import org.elasticsearch.cluster.AckedClusterStateUpdateTask; import org.elasticsearch.cluster.AckedClusterStateUpdateTask;
@ -49,6 +47,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -182,7 +181,7 @@ public class MetaDataMappingService extends AbstractComponent {
// we need to create the index here, and add the current mapping to it, so we can merge // we need to create the index here, and add the current mapping to it, so we can merge
indexService = indicesService.createIndex(indexMetaData.index(), indexMetaData.settings(), currentState.nodes().localNode().id()); indexService = indicesService.createIndex(indexMetaData.index(), indexMetaData.settings(), currentState.nodes().localNode().id());
removeIndex = true; removeIndex = true;
Set<String> typesToIntroduce = Sets.newHashSet(); Set<String> typesToIntroduce = new HashSet<>();
for (MappingTask task : tasks) { for (MappingTask task : tasks) {
if (task instanceof UpdateTask) { if (task instanceof UpdateTask) {
typesToIntroduce.add(((UpdateTask) task).type); typesToIntroduce.add(((UpdateTask) task).type);
@ -223,7 +222,7 @@ public class MetaDataMappingService extends AbstractComponent {
boolean dirty = false; boolean dirty = false;
String index = indexService.index().name(); String index = indexService.index().name();
// keep track of what we already refreshed, no need to refresh it again... // keep track of what we already refreshed, no need to refresh it again...
Set<String> processedRefreshes = Sets.newHashSet(); Set<String> processedRefreshes = new HashSet<>();
for (MappingTask task : tasks) { for (MappingTask task : tasks) {
if (task instanceof RefreshTask) { if (task instanceof RefreshTask) {
RefreshTask refreshTask = (RefreshTask) task; RefreshTask refreshTask = (RefreshTask) task;

View File

@ -19,13 +19,16 @@
package org.elasticsearch.cluster.metadata; package org.elasticsearch.cluster.metadata;
import com.google.common.collect.Sets;
import org.elasticsearch.Version; import org.elasticsearch.Version;
import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsClusterStateUpdateRequest; import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsClusterStateUpdateRequest;
import org.elasticsearch.action.admin.indices.upgrade.post.UpgradeSettingsClusterStateUpdateRequest; import org.elasticsearch.action.admin.indices.upgrade.post.UpgradeSettingsClusterStateUpdateRequest;
import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.action.support.IndicesOptions;
import org.elasticsearch.cluster.*; import org.elasticsearch.cluster.AckedClusterStateUpdateTask;
import org.elasticsearch.cluster.ClusterChangedEvent;
import org.elasticsearch.cluster.ClusterService;
import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.ClusterStateListener;
import org.elasticsearch.cluster.ack.ClusterStateUpdateResponse; import org.elasticsearch.cluster.ack.ClusterStateUpdateResponse;
import org.elasticsearch.cluster.block.ClusterBlocks; import org.elasticsearch.cluster.block.ClusterBlocks;
import org.elasticsearch.cluster.routing.RoutingTable; import org.elasticsearch.cluster.routing.RoutingTable;
@ -41,7 +44,13 @@ import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.settings.IndexDynamicSettings; import org.elasticsearch.index.settings.IndexDynamicSettings;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import static org.elasticsearch.common.settings.Settings.settingsBuilder; import static org.elasticsearch.common.settings.Settings.settingsBuilder;
@ -185,8 +194,8 @@ public class MetaDataUpdateSettingsService extends AbstractComponent implements
final Settings closeSettings = updatedSettingsBuilder.build(); final Settings closeSettings = updatedSettingsBuilder.build();
final Set<String> removedSettings = Sets.newHashSet(); final Set<String> removedSettings = new HashSet<>();
final Set<String> errors = Sets.newHashSet(); final Set<String> errors = new HashSet<>();
for (Map.Entry<String, String> setting : updatedSettingsBuilder.internalMap().entrySet()) { for (Map.Entry<String, String> setting : updatedSettingsBuilder.internalMap().entrySet()) {
if (!dynamicSettings.hasDynamicSetting(setting.getKey())) { if (!dynamicSettings.hasDynamicSetting(setting.getKey())) {
removedSettings.add(setting.getKey()); removedSettings.add(setting.getKey());
@ -225,8 +234,8 @@ public class MetaDataUpdateSettingsService extends AbstractComponent implements
// allow to change any settings to a close index, and only allow dynamic settings to be changed // allow to change any settings to a close index, and only allow dynamic settings to be changed
// on an open index // on an open index
Set<String> openIndices = Sets.newHashSet(); Set<String> openIndices = new HashSet<>();
Set<String> closeIndices = Sets.newHashSet(); Set<String> closeIndices = new HashSet<>();
for (String index : actualIndices) { for (String index : actualIndices) {
if (currentState.metaData().index(index).state() == IndexMetaData.State.OPEN) { if (currentState.metaData().index(index).state() == IndexMetaData.State.OPEN) {
openIndices.add(index); openIndices.add(index);

View File

@ -22,7 +22,6 @@ package org.elasticsearch.cluster.routing;
import com.carrotsearch.hppc.IntSet; import com.carrotsearch.hppc.IntSet;
import com.carrotsearch.hppc.cursors.IntCursor; import com.carrotsearch.hppc.cursors.IntCursor;
import com.carrotsearch.hppc.cursors.IntObjectCursor; import com.carrotsearch.hppc.cursors.IntObjectCursor;
import com.google.common.collect.Sets;
import com.google.common.collect.UnmodifiableIterator; import com.google.common.collect.UnmodifiableIterator;
import org.apache.lucene.util.CollectionUtil; import org.apache.lucene.util.CollectionUtil;
import org.elasticsearch.cluster.AbstractDiffable; import org.elasticsearch.cluster.AbstractDiffable;
@ -37,6 +36,7 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
@ -137,7 +137,7 @@ public class IndexRoutingTable extends AbstractDiffable<IndexRoutingTable> imple
// check the number of shards // check the number of shards
if (indexMetaData.numberOfShards() != shards().size()) { if (indexMetaData.numberOfShards() != shards().size()) {
Set<Integer> expected = Sets.newHashSet(); Set<Integer> expected = new HashSet<>();
for (int i = 0; i < indexMetaData.numberOfShards(); i++) { for (int i = 0; i < indexMetaData.numberOfShards(); i++) {
expected.add(i); expected.add(i);
} }
@ -176,7 +176,7 @@ public class IndexRoutingTable extends AbstractDiffable<IndexRoutingTable> imple
* @return number of distinct nodes this index has at least one shard allocated on * @return number of distinct nodes this index has at least one shard allocated on
*/ */
public int numberOfNodesShardsAreAllocatedOn(String... excludedNodes) { public int numberOfNodesShardsAreAllocatedOn(String... excludedNodes) {
Set<String> nodes = Sets.newHashSet(); Set<String> nodes = new HashSet<>();
for (IndexShardRoutingTable shardRoutingTable : this) { for (IndexShardRoutingTable shardRoutingTable : this) {
for (ShardRouting shardRouting : shardRoutingTable) { for (ShardRouting shardRouting : shardRoutingTable) {
if (shardRouting.assignedToNode()) { if (shardRouting.assignedToNode()) {

View File

@ -20,12 +20,12 @@
package org.elasticsearch.cluster.routing; package org.elasticsearch.cluster.routing;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Sets;
import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodes; import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.common.collect.MapBuilder; import org.elasticsearch.common.collect.MapBuilder;
import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.util.set.Sets;
import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.index.shard.ShardId;
import java.io.IOException; import java.io.IOException;

View File

@ -35,14 +35,13 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.Predicate; import java.util.function.Predicate;
import static com.google.common.collect.Sets.newHashSet;
/** /**
* {@link RoutingNodes} represents a copy the routing information contained in * {@link RoutingNodes} represents a copy the routing information contained in
* the {@link ClusterState cluster state}. * the {@link ClusterState cluster state}.
@ -704,7 +703,7 @@ public class RoutingNodes implements Iterable<RoutingNode> {
int inactivePrimaryCount = 0; int inactivePrimaryCount = 0;
int inactiveShardCount = 0; int inactiveShardCount = 0;
int relocating = 0; int relocating = 0;
final Set<ShardId> seenShards = newHashSet(); final Set<ShardId> seenShards = new HashSet<>();
Map<String, Integer> indicesAndShards = new HashMap<>(); Map<String, Integer> indicesAndShards = new HashMap<>();
for (RoutingNode node : routingNodes) { for (RoutingNode node : routingNodes) {
for (ShardRouting shard : node) { for (ShardRouting shard : node) {

View File

@ -188,7 +188,7 @@ public class AwarenessAllocationDecider extends AllocationDecider {
if (assignedShard.relocating()) { if (assignedShard.relocating()) {
RoutingNode relocationNode = allocation.routingNodes().node(assignedShard.relocatingNodeId()); RoutingNode relocationNode = allocation.routingNodes().node(assignedShard.relocatingNodeId());
shardPerAttribute.addTo(relocationNode.node().attributes().get(awarenessAttribute), 1); shardPerAttribute.addTo(relocationNode.node().attributes().get(awarenessAttribute), 1);
} else if (assignedShard.started()) { } else if (assignedShard.started() || assignedShard.initializing()) {
RoutingNode routingNode = allocation.routingNodes().node(assignedShard.currentNodeId()); RoutingNode routingNode = allocation.routingNodes().node(assignedShard.currentNodeId());
shardPerAttribute.addTo(routingNode.node().attributes().get(awarenessAttribute), 1); shardPerAttribute.addTo(routingNode.node().attributes().get(awarenessAttribute), 1);
} }

View File

@ -19,7 +19,6 @@
package org.elasticsearch.cluster.routing.allocation.decider; package org.elasticsearch.cluster.routing.allocation.decider;
import com.google.common.collect.Sets;
import org.elasticsearch.ElasticsearchParseException; import org.elasticsearch.ElasticsearchParseException;
import org.elasticsearch.client.Client; import org.elasticsearch.client.Client;
import org.elasticsearch.cluster.ClusterInfo; import org.elasticsearch.cluster.ClusterInfo;
@ -36,6 +35,7 @@ import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.unit.ByteSizeValue;
import org.elasticsearch.common.unit.RatioValue; import org.elasticsearch.common.unit.RatioValue;
import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.util.set.Sets;
import org.elasticsearch.node.settings.NodeSettingsService; import org.elasticsearch.node.settings.NodeSettingsService;
import java.util.Map; import java.util.Map;

View File

@ -19,11 +19,16 @@
package org.elasticsearch.common.geo.builders; package org.elasticsearch.common.geo.builders;
import com.google.common.collect.Sets;
import com.spatial4j.core.exception.InvalidShapeException; import com.spatial4j.core.exception.InvalidShapeException;
import com.spatial4j.core.shape.Shape; import com.spatial4j.core.shape.Shape;
import com.vividsolutions.jts.geom.*; import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.LinearRing;
import com.vividsolutions.jts.geom.MultiPolygon;
import com.vividsolutions.jts.geom.Polygon;
import org.elasticsearch.common.collect.Tuple; import org.elasticsearch.common.collect.Tuple;
import org.elasticsearch.common.util.set.Sets;
import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentBuilder;
import java.io.IOException; import java.io.IOException;

View File

@ -25,8 +25,8 @@ import org.elasticsearch.common.inject.spi.TypeConverter;
import org.elasticsearch.common.inject.spi.TypeListener; import org.elasticsearch.common.inject.spi.TypeListener;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
/** /**
@ -56,7 +56,7 @@ public abstract class AbstractModule implements Module {
public final synchronized void configure(Binder builder) { public final synchronized void configure(Binder builder) {
checkState(this.binder == null, "Re-entry is not allowed."); checkState(this.binder == null, "Re-entry is not allowed.");
this.binder = checkNotNull(builder, "builder"); this.binder = Objects.requireNonNull(builder, "builder");
try { try {
configure(); configure();
} finally { } finally {

View File

@ -33,8 +33,7 @@ import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* @author jessewilson@google.com (Jesse Wilson) * @author jessewilson@google.com (Jesse Wilson)
@ -54,7 +53,7 @@ class InheritingState implements State {
private final Object lock; private final Object lock;
InheritingState(State parent) { InheritingState(State parent) {
this.parent = checkNotNull(parent, "parent"); this.parent = Objects.requireNonNull(parent, "parent");
this.lock = (parent == State.NONE) ? this : parent.lock(); this.lock = (parent == State.NONE) ? this : parent.lock();
} }

View File

@ -23,11 +23,10 @@ import org.elasticsearch.common.inject.spi.InjectionPoint;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.IdentityHashMap; import java.util.IdentityHashMap;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* Manages and injects instances at injector-creation time. This is made more complicated by * Manages and injects instances at injector-creation time. This is made more complicated by
* instances that request other instances while they're being injected. We overcome this by using * instances that request other instances while they're being injected. We overcome this by using
@ -60,7 +59,7 @@ class Initializer {
*/ */
public <T> Initializable<T> requestInjection(InjectorImpl injector, T instance, Object source, public <T> Initializable<T> requestInjection(InjectorImpl injector, T instance, Object source,
Set<InjectionPoint> injectionPoints) { Set<InjectionPoint> injectionPoints) {
checkNotNull(source); Objects.requireNonNull(source);
// short circuit if the object has no injections // short circuit if the object has no injections
if (instance == null if (instance == null
@ -118,8 +117,8 @@ class Initializer {
public InjectableReference(InjectorImpl injector, T instance, Object source) { public InjectableReference(InjectorImpl injector, T instance, Object source) {
this.injector = injector; this.injector = injector;
this.instance = checkNotNull(instance, "instance"); this.instance = Objects.requireNonNull(instance, "instance");
this.source = checkNotNull(source, "source"); this.source = Objects.requireNonNull(source, "source");
} }
public void validate(Errors errors) throws ErrorsException { public void validate(Errors errors) throws ErrorsException {

View File

@ -35,9 +35,9 @@ import org.elasticsearch.common.inject.spi.TypeListenerBinding;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.logging.Logger; import java.util.logging.Logger;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
import static org.elasticsearch.common.inject.Scopes.SINGLETON; import static org.elasticsearch.common.inject.Scopes.SINGLETON;
@ -257,7 +257,7 @@ class InjectorShell {
final Stage stage; final Stage stage;
private RootModule(Stage stage) { private RootModule(Stage stage) {
this.stage = checkNotNull(stage, "stage"); this.stage = Objects.requireNonNull(stage, "stage");
} }
@Override @Override

View File

@ -19,12 +19,12 @@
package org.elasticsearch.common.inject; package org.elasticsearch.common.inject;
import com.google.common.collect.Sets;
import org.elasticsearch.common.inject.matcher.Matcher; import org.elasticsearch.common.inject.matcher.Matcher;
import org.elasticsearch.common.inject.name.Names; import org.elasticsearch.common.inject.name.Names;
import org.elasticsearch.common.inject.spi.Message; import org.elasticsearch.common.inject.spi.Message;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Set; import java.util.Set;
@ -69,7 +69,7 @@ public class Injectors {
* @return a set of objects returned from this injector * @return a set of objects returned from this injector
*/ */
public static <T> Set<T> getInstancesOf(Injector injector, Class<T> baseClass) { public static <T> Set<T> getInstancesOf(Injector injector, Class<T> baseClass) {
Set<T> answer = Sets.newHashSet(); Set<T> answer = new HashSet<>();
Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet(); Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet();
for (Entry<Key<?>, Binding<?>> entry : entries) { for (Entry<Key<?>, Binding<?>> entry : entries) {
Key<?> key = entry.getKey(); Key<?> key = entry.getKey();
@ -93,7 +93,7 @@ public class Injectors {
* @return a set of objects returned from this injector * @return a set of objects returned from this injector
*/ */
public static <T> Set<T> getInstancesOf(Injector injector, Matcher<Class> matcher) { public static <T> Set<T> getInstancesOf(Injector injector, Matcher<Class> matcher) {
Set<T> answer = Sets.newHashSet(); Set<T> answer = new HashSet<>();
Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet(); Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet();
for (Entry<Key<?>, Binding<?>> entry : entries) { for (Entry<Key<?>, Binding<?>> entry : entries) {
Key<?> key = entry.getKey(); Key<?> key = entry.getKey();
@ -114,7 +114,7 @@ public class Injectors {
* @return a set of objects returned from this injector * @return a set of objects returned from this injector
*/ */
public static <T> Set<Provider<T>> getProvidersOf(Injector injector, Matcher<Class> matcher) { public static <T> Set<Provider<T>> getProvidersOf(Injector injector, Matcher<Class> matcher) {
Set<Provider<T>> answer = Sets.newHashSet(); Set<Provider<T>> answer = new HashSet<>();
Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet(); Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet();
for (Entry<Key<?>, Binding<?>> entry : entries) { for (Entry<Key<?>, Binding<?>> entry : entries) {
Key<?> key = entry.getKey(); Key<?> key = entry.getKey();
@ -135,7 +135,7 @@ public class Injectors {
* @return a set of objects returned from this injector * @return a set of objects returned from this injector
*/ */
public static <T> Set<Provider<T>> getProvidersOf(Injector injector, Class<T> baseClass) { public static <T> Set<Provider<T>> getProvidersOf(Injector injector, Class<T> baseClass) {
Set<Provider<T>> answer = Sets.newHashSet(); Set<Provider<T>> answer = new HashSet<>();
Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet(); Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet();
for (Entry<Key<?>, Binding<?>> entry : entries) { for (Entry<Key<?>, Binding<?>> entry : entries) {
Key<?> key = entry.getKey(); Key<?> key = entry.getKey();
@ -186,7 +186,7 @@ public class Injectors {
* @return a set of objects returned from this injector * @return a set of objects returned from this injector
*/ */
public static Set<Binding<?>> getBindingsOf(Injector injector, Matcher<Class> matcher) { public static Set<Binding<?>> getBindingsOf(Injector injector, Matcher<Class> matcher) {
Set<Binding<?>> answer = Sets.newHashSet(); Set<Binding<?>> answer = new HashSet<>();
Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet(); Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet();
for (Entry<Key<?>, Binding<?>> entry : entries) { for (Entry<Key<?>, Binding<?>> entry : entries) {
Key<?> key = entry.getKey(); Key<?> key = entry.getKey();
@ -205,7 +205,7 @@ public class Injectors {
* @return a set of objects returned from this injector * @return a set of objects returned from this injector
*/ */
public static Set<Binding<?>> getBindingsOf(Injector injector, Class<?> baseClass) { public static Set<Binding<?>> getBindingsOf(Injector injector, Class<?> baseClass) {
Set<Binding<?>> answer = Sets.newHashSet(); Set<Binding<?>> answer = new HashSet<>();
Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet(); Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet();
for (Entry<Key<?>, Binding<?>> entry : entries) { for (Entry<Key<?>, Binding<?>> entry : entries) {
Key<?> key = entry.getKey(); Key<?> key = entry.getKey();

View File

@ -19,7 +19,7 @@ package org.elasticsearch.common.inject;
import org.elasticsearch.common.inject.internal.*; import org.elasticsearch.common.inject.internal.*;
import org.elasticsearch.common.inject.spi.Dependency; import org.elasticsearch.common.inject.spi.Dependency;
import static com.google.common.base.Preconditions.checkNotNull; import java.util.Objects;
/** /**
* @author crazybob@google.com (Bob Lee) * @author crazybob@google.com (Bob Lee)
@ -35,8 +35,8 @@ class InternalFactoryToProviderAdapter<T> implements InternalFactory<T> {
public InternalFactoryToProviderAdapter( public InternalFactoryToProviderAdapter(
Initializable<Provider<? extends T>> initializable, Object source) { Initializable<Provider<? extends T>> initializable, Object source) {
this.initializable = checkNotNull(initializable, "provider"); this.initializable = Objects.requireNonNull(initializable, "provider");
this.source = checkNotNull(source, "source"); this.source = Objects.requireNonNull(source, "source");
} }
@Override @Override

View File

@ -22,9 +22,9 @@ import org.elasticsearch.common.inject.internal.ToStringBuilder;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* Binding key consisting of an injection type and an optional annotation. * Binding key consisting of an injection type and an optional annotation.
@ -343,7 +343,7 @@ public class Key<T> {
* Gets the strategy for an annotation. * Gets the strategy for an annotation.
*/ */
static AnnotationStrategy strategyFor(Annotation annotation) { static AnnotationStrategy strategyFor(Annotation annotation) {
checkNotNull(annotation, "annotation"); Objects.requireNonNull(annotation, "annotation");
Class<? extends Annotation> annotationType = annotation.annotationType(); Class<? extends Annotation> annotationType = annotation.annotationType();
ensureRetainedAtRuntime(annotationType); ensureRetainedAtRuntime(annotationType);
ensureIsBindingAnnotation(annotationType); ensureIsBindingAnnotation(annotationType);
@ -359,7 +359,7 @@ public class Key<T> {
* Gets the strategy for an annotation type. * Gets the strategy for an annotation type.
*/ */
static AnnotationStrategy strategyFor(Class<? extends Annotation> annotationType) { static AnnotationStrategy strategyFor(Class<? extends Annotation> annotationType) {
checkNotNull(annotationType, "annotation type"); Objects.requireNonNull(annotationType, "annotation type");
ensureRetainedAtRuntime(annotationType); ensureRetainedAtRuntime(annotationType);
ensureIsBindingAnnotation(annotationType); ensureIsBindingAnnotation(annotationType);
return new AnnotationTypeStrategy(annotationType, null); return new AnnotationTypeStrategy(annotationType, null);
@ -414,7 +414,7 @@ public class Key<T> {
final Annotation annotation; final Annotation annotation;
AnnotationInstanceStrategy(Annotation annotation) { AnnotationInstanceStrategy(Annotation annotation) {
this.annotation = checkNotNull(annotation, "annotation"); this.annotation = Objects.requireNonNull(annotation, "annotation");
} }
@Override @Override
@ -467,7 +467,7 @@ public class Key<T> {
AnnotationTypeStrategy(Class<? extends Annotation> annotationType, AnnotationTypeStrategy(Class<? extends Annotation> annotationType,
Annotation annotation) { Annotation annotation) {
this.annotationType = checkNotNull(annotationType, "annotation type"); this.annotationType = Objects.requireNonNull(annotationType, "annotation type");
this.annotation = annotation; this.annotation = annotation;
} }

View File

@ -21,8 +21,7 @@ import org.elasticsearch.common.inject.internal.Errors;
import org.elasticsearch.common.inject.spi.ScopeBinding; import org.elasticsearch.common.inject.spi.ScopeBinding;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* Handles {@link Binder#bindScope} commands. * Handles {@link Binder#bindScope} commands.
@ -52,11 +51,11 @@ class ScopeBindingProcessor extends AbstractProcessor {
// Go ahead and bind anyway so we don't get collateral errors. // Go ahead and bind anyway so we don't get collateral errors.
} }
Scope existing = injector.state.getScope(checkNotNull(annotationType, "annotation type")); Scope existing = injector.state.getScope(Objects.requireNonNull(annotationType, "annotation type"));
if (existing != null) { if (existing != null) {
errors.duplicateScopes(existing, annotationType, scope); errors.duplicateScopes(existing, annotationType, scope);
} else { } else {
injector.state.putAnnotation(annotationType, checkNotNull(scope, "scope")); injector.state.putAnnotation(annotationType, Objects.requireNonNull(scope, "scope"));
} }
return true; return true;

View File

@ -21,11 +21,10 @@ import org.elasticsearch.common.inject.util.Types;
import java.lang.reflect.*; import java.lang.reflect.*;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.elasticsearch.common.inject.internal.MoreTypes.canonicalize; import static org.elasticsearch.common.inject.internal.MoreTypes.canonicalize;
/** /**
@ -85,7 +84,7 @@ public class TypeLiteral<T> {
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
TypeLiteral(Type type) { TypeLiteral(Type type) {
this.type = canonicalize(checkNotNull(type, "type")); this.type = canonicalize(Objects.requireNonNull(type, "type"));
this.rawType = (Class<? super T>) MoreTypes.getRawType(this.type); this.rawType = (Class<? super T>) MoreTypes.getRawType(this.type);
this.hashCode = MoreTypes.hashCode(this.type); this.hashCode = MoreTypes.hashCode(this.type);
} }

View File

@ -16,8 +16,7 @@
package org.elasticsearch.common.inject; package org.elasticsearch.common.inject;
import com.google.common.collect.Sets; import java.util.HashSet;
import java.util.Set; import java.util.Set;
/** /**
@ -34,7 +33,7 @@ final class WeakKeySet {
* keys whose class names are equal but class loaders are different. This shouldn't be an issue * keys whose class names are equal but class loaders are different. This shouldn't be an issue
* in practice. * in practice.
*/ */
private Set<String> backingSet = Sets.newHashSet(); private Set<String> backingSet = new HashSet<>();
public boolean add(Key<?> key) { public boolean add(Key<?> key) {
return backingSet.add(key.toString()); return backingSet.add(key.toString());

View File

@ -24,8 +24,7 @@ import org.elasticsearch.common.inject.spi.InstanceBinding;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.List; import java.util.List;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* Bind a value or constant. * Bind a value or constant.
@ -73,7 +72,7 @@ public abstract class AbstractBindingBuilder<T> {
* Sets the binding to a copy with the specified annotation on the bound key * Sets the binding to a copy with the specified annotation on the bound key
*/ */
protected BindingImpl<T> annotatedWithInternal(Class<? extends Annotation> annotationType) { protected BindingImpl<T> annotatedWithInternal(Class<? extends Annotation> annotationType) {
checkNotNull(annotationType, "annotationType"); Objects.requireNonNull(annotationType, "annotationType");
checkNotAnnotated(); checkNotAnnotated();
return setBinding(binding.withKey( return setBinding(binding.withKey(
Key.get(this.binding.getKey().getTypeLiteral(), annotationType))); Key.get(this.binding.getKey().getTypeLiteral(), annotationType)));
@ -83,20 +82,20 @@ public abstract class AbstractBindingBuilder<T> {
* Sets the binding to a copy with the specified annotation on the bound key * Sets the binding to a copy with the specified annotation on the bound key
*/ */
protected BindingImpl<T> annotatedWithInternal(Annotation annotation) { protected BindingImpl<T> annotatedWithInternal(Annotation annotation) {
checkNotNull(annotation, "annotation"); Objects.requireNonNull(annotation, "annotation");
checkNotAnnotated(); checkNotAnnotated();
return setBinding(binding.withKey( return setBinding(binding.withKey(
Key.get(this.binding.getKey().getTypeLiteral(), annotation))); Key.get(this.binding.getKey().getTypeLiteral(), annotation)));
} }
public void in(final Class<? extends Annotation> scopeAnnotation) { public void in(final Class<? extends Annotation> scopeAnnotation) {
checkNotNull(scopeAnnotation, "scopeAnnotation"); Objects.requireNonNull(scopeAnnotation, "scopeAnnotation");
checkNotScoped(); checkNotScoped();
setBinding(getBinding().withScoping(Scoping.forAnnotation(scopeAnnotation))); setBinding(getBinding().withScoping(Scoping.forAnnotation(scopeAnnotation)));
} }
public void in(final Scope scope) { public void in(final Scope scope) {
checkNotNull(scope, "scope"); Objects.requireNonNull(scope, "scope");
checkNotScoped(); checkNotScoped();
setBinding(getBinding().withScoping(Scoping.forInstance(scope))); setBinding(getBinding().withScoping(Scoping.forInstance(scope)));
} }

View File

@ -25,10 +25,9 @@ import org.elasticsearch.common.inject.spi.Message;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* Bind a non-constant key. * Bind a non-constant key.
* *
@ -65,7 +64,7 @@ public class BindingBuilder<T> extends AbstractBindingBuilder<T>
@Override @Override
public BindingBuilder<T> to(Key<? extends T> linkedKey) { public BindingBuilder<T> to(Key<? extends T> linkedKey) {
checkNotNull(linkedKey, "linkedKey"); Objects.requireNonNull(linkedKey, "linkedKey");
checkNotTargetted(); checkNotTargetted();
BindingImpl<T> base = getBinding(); BindingImpl<T> base = getBinding();
setBinding(new LinkedBindingImpl<>( setBinding(new LinkedBindingImpl<>(
@ -100,7 +99,7 @@ public class BindingBuilder<T> extends AbstractBindingBuilder<T>
@Override @Override
public BindingBuilder<T> toProvider(Provider<? extends T> provider) { public BindingBuilder<T> toProvider(Provider<? extends T> provider) {
checkNotNull(provider, "provider"); Objects.requireNonNull(provider, "provider");
checkNotTargetted(); checkNotTargetted();
// lookup the injection points, adding any errors to the binder's errors list // lookup the injection points, adding any errors to the binder's errors list
@ -127,7 +126,7 @@ public class BindingBuilder<T> extends AbstractBindingBuilder<T>
@Override @Override
public BindingBuilder<T> toProvider(Key<? extends Provider<? extends T>> providerKey) { public BindingBuilder<T> toProvider(Key<? extends Provider<? extends T>> providerKey) {
checkNotNull(providerKey, "providerKey"); Objects.requireNonNull(providerKey, "providerKey");
checkNotTargetted(); checkNotTargetted();
BindingImpl<T> base = getBinding(); BindingImpl<T> base = getBinding();

View File

@ -21,6 +21,7 @@ import org.elasticsearch.common.inject.Key;
import org.elasticsearch.common.inject.binder.AnnotatedElementBuilder; import org.elasticsearch.common.inject.binder.AnnotatedElementBuilder;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.Objects;
/** /**
* For private binder's expose() method. * For private binder's expose() method.
@ -44,14 +45,14 @@ public class ExposureBuilder<T> implements AnnotatedElementBuilder {
@Override @Override
public void annotatedWith(Class<? extends Annotation> annotationType) { public void annotatedWith(Class<? extends Annotation> annotationType) {
com.google.common.base.Preconditions.checkNotNull(annotationType, "annotationType"); Objects.requireNonNull(annotationType, "annotationType");
checkNotAnnotated(); checkNotAnnotated();
key = Key.get(key.getTypeLiteral(), annotationType); key = Key.get(key.getTypeLiteral(), annotationType);
} }
@Override @Override
public void annotatedWith(Annotation annotation) { public void annotatedWith(Annotation annotation) {
com.google.common.base.Preconditions.checkNotNull(annotation, "annotation"); Objects.requireNonNull(annotation, "annotation");
checkNotAnnotated(); checkNotAnnotated();
key = Key.get(key.getTypeLiteral(), annotation); key = Key.get(key.getTypeLiteral(), annotation);
} }

View File

@ -22,8 +22,7 @@ import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* Utility for joining pieces of text separated by a delimiter. It can handle * Utility for joining pieces of text separated by a delimiter. It can handle
@ -97,7 +96,7 @@ public final class Join {
*/ */
public static String join( public static String join(
String delimiter, @Nullable Object firstToken, Object... otherTokens) { String delimiter, @Nullable Object firstToken, Object... otherTokens) {
checkNotNull(otherTokens); Objects.requireNonNull(otherTokens);
return join(delimiter, CollectionUtils.asArrayList(firstToken, otherTokens)); return join(delimiter, CollectionUtils.asArrayList(firstToken, otherTokens));
} }
@ -207,7 +206,7 @@ public final class Join {
*/ */
public static <T extends Appendable> T join(T appendable, String delimiter, public static <T extends Appendable> T join(T appendable, String delimiter,
@Nullable Object firstToken, Object... otherTokens) { @Nullable Object firstToken, Object... otherTokens) {
checkNotNull(otherTokens); Objects.requireNonNull(otherTokens);
return join(appendable, delimiter, CollectionUtils.asArrayList(firstToken, otherTokens)); return join(appendable, delimiter, CollectionUtils.asArrayList(firstToken, otherTokens));
} }
@ -232,8 +231,8 @@ public final class Join {
/* This method is the workhorse of the class */ /* This method is the workhorse of the class */
checkNotNull(appendable); Objects.requireNonNull(appendable);
checkNotNull(delimiter); Objects.requireNonNull(delimiter);
if (tokens.hasNext()) { if (tokens.hasNext()) {
try { try {
appendOneToken(appendable, tokens.next()); appendOneToken(appendable, tokens.next());
@ -268,9 +267,9 @@ public final class Join {
*/ */
public static <T extends Appendable> T join(T appendable, public static <T extends Appendable> T join(T appendable,
String keyValueSeparator, String entryDelimiter, Map<?, ?> map) { String keyValueSeparator, String entryDelimiter, Map<?, ?> map) {
checkNotNull(appendable); Objects.requireNonNull(appendable);
checkNotNull(keyValueSeparator); Objects.requireNonNull(keyValueSeparator);
checkNotNull(entryDelimiter); Objects.requireNonNull(entryDelimiter);
Iterator<? extends Map.Entry<?, ?>> entries = map.entrySet().iterator(); Iterator<? extends Map.Entry<?, ?>> entries = map.entrySet().iterator();
if (entries.hasNext()) { if (entries.hasNext()) {
try { try {

View File

@ -20,7 +20,7 @@ import org.elasticsearch.common.inject.TypeLiteral;
import org.elasticsearch.common.inject.matcher.Matcher; import org.elasticsearch.common.inject.matcher.Matcher;
import org.elasticsearch.common.inject.spi.TypeConverter; import org.elasticsearch.common.inject.spi.TypeConverter;
import static com.google.common.base.Preconditions.checkNotNull; import java.util.Objects;
/** /**
* @author crazybob@google.com (Bob Lee) * @author crazybob@google.com (Bob Lee)
@ -33,8 +33,8 @@ public final class MatcherAndConverter {
public MatcherAndConverter(Matcher<? super TypeLiteral<?>> typeMatcher, public MatcherAndConverter(Matcher<? super TypeLiteral<?>> typeMatcher,
TypeConverter typeConverter, Object source) { TypeConverter typeConverter, Object source) {
this.typeMatcher = checkNotNull(typeMatcher, "type matcher"); this.typeMatcher = Objects.requireNonNull(typeMatcher, "type matcher");
this.typeConverter = checkNotNull(typeConverter, "converter"); this.typeConverter = Objects.requireNonNull(typeConverter, "converter");
this.source = source; this.source = source;
} }

View File

@ -31,7 +31,6 @@ import java.util.NoSuchElementException;
import java.util.Objects; import java.util.Objects;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* Static methods for working with types that we aren't publishing in the * Static methods for working with types that we aren't publishing in the
@ -316,7 +315,7 @@ public class MoreTypes {
* Returns {@code Field.class}, {@code Method.class} or {@code Constructor.class}. * Returns {@code Field.class}, {@code Method.class} or {@code Constructor.class}.
*/ */
public static Class<? extends Member> memberType(Member member) { public static Class<? extends Member> memberType(Member member) {
checkNotNull(member, "member"); Objects.requireNonNull(member, "member");
if (member instanceof MemberImpl) { if (member instanceof MemberImpl) {
return ((MemberImpl) member).memberType; return ((MemberImpl) member).memberType;
@ -355,7 +354,7 @@ public class MoreTypes {
} }
public static String memberKey(Member member) { public static String memberKey(Member member) {
checkNotNull(member, "member"); Objects.requireNonNull(member, "member");
return "<NO_MEMBER_KEY>"; return "<NO_MEMBER_KEY>";
} }
@ -456,7 +455,7 @@ public class MoreTypes {
this.rawType = canonicalize(rawType); this.rawType = canonicalize(rawType);
this.typeArguments = typeArguments.clone(); this.typeArguments = typeArguments.clone();
for (int t = 0; t < this.typeArguments.length; t++) { for (int t = 0; t < this.typeArguments.length; t++) {
checkNotNull(this.typeArguments[t], "type parameter"); Objects.requireNonNull(this.typeArguments[t], "type parameter");
checkNotPrimitive(this.typeArguments[t], "type parameters"); checkNotPrimitive(this.typeArguments[t], "type parameters");
this.typeArguments[t] = canonicalize(this.typeArguments[t]); this.typeArguments[t] = canonicalize(this.typeArguments[t]);
} }
@ -566,14 +565,14 @@ public class MoreTypes {
checkArgument(upperBounds.length == 1, "Must have exactly one upper bound."); checkArgument(upperBounds.length == 1, "Must have exactly one upper bound.");
if (lowerBounds.length == 1) { if (lowerBounds.length == 1) {
checkNotNull(lowerBounds[0], "lowerBound"); Objects.requireNonNull(lowerBounds[0], "lowerBound");
checkNotPrimitive(lowerBounds[0], "wildcard bounds"); checkNotPrimitive(lowerBounds[0], "wildcard bounds");
checkArgument(upperBounds[0] == Object.class, "bounded both ways"); checkArgument(upperBounds[0] == Object.class, "bounded both ways");
this.lowerBound = canonicalize(lowerBounds[0]); this.lowerBound = canonicalize(lowerBounds[0]);
this.upperBound = Object.class; this.upperBound = Object.class;
} else { } else {
checkNotNull(upperBounds[0], "upperBound"); Objects.requireNonNull(upperBounds[0], "upperBound");
checkNotPrimitive(upperBounds[0], "wildcard bounds"); checkNotPrimitive(upperBounds[0], "wildcard bounds");
this.lowerBound = null; this.lowerBound = null;
this.upperBound = canonicalize(upperBounds[0]); this.upperBound = canonicalize(upperBounds[0]);

View File

@ -30,10 +30,10 @@ import java.util.Collections;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
/** /**
@ -64,7 +64,7 @@ public final class PrivateElementsImpl implements PrivateElements {
private Injector injector; private Injector injector;
public PrivateElementsImpl(Object source) { public PrivateElementsImpl(Object source) {
this.source = checkNotNull(source, "source"); this.source = Objects.requireNonNull(source, "source");
} }
@Override @Override
@ -89,7 +89,7 @@ public final class PrivateElementsImpl implements PrivateElements {
public void initInjector(Injector injector) { public void initInjector(Injector injector) {
checkState(this.injector == null, "injector already initialized"); checkState(this.injector == null, "injector already initialized");
this.injector = checkNotNull(injector, "injector"); this.injector = Objects.requireNonNull(injector, "injector");
} }
@Override @Override

View File

@ -32,8 +32,7 @@ import java.lang.reflect.Member;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* Creates bindings to methods annotated with {@literal @}{@link Provides}. Use the scope and * Creates bindings to methods annotated with {@literal @}{@link Provides}. Use the scope and
@ -47,7 +46,7 @@ public final class ProviderMethodsModule implements Module {
private final TypeLiteral<?> typeLiteral; private final TypeLiteral<?> typeLiteral;
private ProviderMethodsModule(Object delegate) { private ProviderMethodsModule(Object delegate) {
this.delegate = checkNotNull(delegate, "delegate"); this.delegate = Objects.requireNonNull(delegate, "delegate");
this.typeLiteral = TypeLiteral.get(this.delegate.getClass()); this.typeLiteral = TypeLiteral.get(this.delegate.getClass());
} }

View File

@ -22,9 +22,9 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.AnnotatedElement; import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* Matcher implementations. Supports matching classes and methods. * Matcher implementations. Supports matching classes and methods.
@ -73,7 +73,7 @@ public class Matchers {
final Matcher<? super T> delegate; final Matcher<? super T> delegate;
private Not(Matcher<? super T> delegate) { private Not(Matcher<? super T> delegate) {
this.delegate = checkNotNull(delegate, "delegate"); this.delegate = Objects.requireNonNull(delegate, "delegate");
} }
@Override @Override
@ -121,7 +121,7 @@ public class Matchers {
private final Class<? extends Annotation> annotationType; private final Class<? extends Annotation> annotationType;
public AnnotatedWithType(Class<? extends Annotation> annotationType) { public AnnotatedWithType(Class<? extends Annotation> annotationType) {
this.annotationType = checkNotNull(annotationType, "annotation type"); this.annotationType = Objects.requireNonNull(annotationType, "annotation type");
checkForRuntimeRetention(annotationType); checkForRuntimeRetention(annotationType);
} }
@ -163,7 +163,7 @@ public class Matchers {
private final Annotation annotation; private final Annotation annotation;
public AnnotatedWith(Annotation annotation) { public AnnotatedWith(Annotation annotation) {
this.annotation = checkNotNull(annotation, "annotation"); this.annotation = Objects.requireNonNull(annotation, "annotation");
checkForRuntimeRetention(annotation.annotationType()); checkForRuntimeRetention(annotation.annotationType());
} }
@ -205,7 +205,7 @@ public class Matchers {
private final Class<?> superclass; private final Class<?> superclass;
public SubclassesOf(Class<?> superclass) { public SubclassesOf(Class<?> superclass) {
this.superclass = checkNotNull(superclass, "superclass"); this.superclass = Objects.requireNonNull(superclass, "superclass");
} }
@Override @Override
@ -244,7 +244,7 @@ public class Matchers {
private final Object value; private final Object value;
public Only(Object value) { public Only(Object value) {
this.value = checkNotNull(value, "value"); this.value = Objects.requireNonNull(value, "value");
} }
@Override @Override
@ -283,7 +283,7 @@ public class Matchers {
private final Object value; private final Object value;
public IdenticalTo(Object value) { public IdenticalTo(Object value) {
this.value = checkNotNull(value, "value"); this.value = Objects.requireNonNull(value, "value");
} }
@Override @Override
@ -323,7 +323,7 @@ public class Matchers {
private final String packageName; private final String packageName;
public InPackage(Package targetPackage) { public InPackage(Package targetPackage) {
this.targetPackage = checkNotNull(targetPackage, "package"); this.targetPackage = Objects.requireNonNull(targetPackage, "package");
this.packageName = targetPackage.getName(); this.packageName = targetPackage.getName();
} }
@ -410,7 +410,7 @@ public class Matchers {
private final Matcher<? super Class<?>> returnType; private final Matcher<? super Class<?>> returnType;
public Returns(Matcher<? super Class<?>> returnType) { public Returns(Matcher<? super Class<?>> returnType) {
this.returnType = checkNotNull(returnType, "return type matcher"); this.returnType = Objects.requireNonNull(returnType, "return type matcher");
} }
@Override @Override

View File

@ -39,6 +39,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Set; import java.util.Set;
/** /**
@ -208,10 +209,10 @@ public abstract class Multibinder<T> {
private RealMultibinder(Binder binder, TypeLiteral<T> elementType, private RealMultibinder(Binder binder, TypeLiteral<T> elementType,
String setName, Key<Set<T>> setKey) { String setName, Key<Set<T>> setKey) {
this.binder = checkNotNull(binder, "binder"); this.binder = Objects.requireNonNull(binder, "binder");
this.elementType = checkNotNull(elementType, "elementType"); this.elementType = Objects.requireNonNull(elementType, "elementType");
this.setName = checkNotNull(setName, "setName"); this.setName = Objects.requireNonNull(setName, "setName");
this.setKey = checkNotNull(setKey, "setKey"); this.setKey = Objects.requireNonNull(setKey, "setKey");
} }
@Override @Override

View File

@ -18,15 +18,14 @@ package org.elasticsearch.common.inject.name;
import java.io.Serializable; import java.io.Serializable;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
class NamedImpl implements Named, Serializable { class NamedImpl implements Named, Serializable {
private final String value; private final String value;
public NamedImpl(String value) { public NamedImpl(String value) {
this.value = checkNotNull(value, "name"); this.value = Objects.requireNonNull(value, "name");
} }
@Override @Override

View File

@ -16,7 +16,6 @@
package org.elasticsearch.common.inject.spi; package org.elasticsearch.common.inject.spi;
import com.google.common.collect.Sets;
import org.elasticsearch.common.inject.AbstractModule; import org.elasticsearch.common.inject.AbstractModule;
import org.elasticsearch.common.inject.Binder; import org.elasticsearch.common.inject.Binder;
import org.elasticsearch.common.inject.Binding; import org.elasticsearch.common.inject.Binding;
@ -49,6 +48,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -141,7 +141,7 @@ public final class Elements {
private RecordingBinder(Stage stage) { private RecordingBinder(Stage stage) {
this.stage = stage; this.stage = stage;
this.modules = Sets.newHashSet(); this.modules = new HashSet<>();
this.elements = new ArrayList<>(); this.elements = new ArrayList<>();
this.source = null; this.source = null;
this.sourceProvider = new SourceProvider().plusSkippedClasses( this.sourceProvider = new SourceProvider().plusSkippedClasses(
@ -172,7 +172,7 @@ public final class Elements {
*/ */
private RecordingBinder(RecordingBinder parent, PrivateElementsImpl privateElements) { private RecordingBinder(RecordingBinder parent, PrivateElementsImpl privateElements) {
this.stage = parent.stage; this.stage = parent.stage;
this.modules = Sets.newHashSet(); this.modules = new HashSet<>();
this.elements = privateElements.getElementsMutable(); this.elements = privateElements.getElementsMutable();
this.source = parent.source; this.source = parent.source;
this.sourceProvider = parent.sourceProvider; this.sourceProvider = parent.sourceProvider;

View File

@ -20,10 +20,9 @@ import org.elasticsearch.common.inject.Binder;
import org.elasticsearch.common.inject.ConfigurationException; import org.elasticsearch.common.inject.ConfigurationException;
import org.elasticsearch.common.inject.TypeLiteral; import org.elasticsearch.common.inject.TypeLiteral;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* A request to inject the instance fields and methods of an instance. Requests are created * A request to inject the instance fields and methods of an instance. Requests are created
* explicitly in a module using {@link org.elasticsearch.common.inject.Binder#requestInjection(Object) * explicitly in a module using {@link org.elasticsearch.common.inject.Binder#requestInjection(Object)
@ -41,9 +40,9 @@ public final class InjectionRequest<T> implements Element {
private final T instance; private final T instance;
public InjectionRequest(Object source, TypeLiteral<T> type, T instance) { public InjectionRequest(Object source, TypeLiteral<T> type, T instance) {
this.source = checkNotNull(source, "source"); this.source = Objects.requireNonNull(source, "source");
this.type = checkNotNull(type, "type"); this.type = Objects.requireNonNull(type, "type");
this.instance = checkNotNull(instance, "instance"); this.instance = Objects.requireNonNull(instance, "instance");
} }
@Override @Override

View File

@ -20,7 +20,8 @@ import org.elasticsearch.common.inject.Binder;
import org.elasticsearch.common.inject.MembersInjector; import org.elasticsearch.common.inject.MembersInjector;
import org.elasticsearch.common.inject.TypeLiteral; import org.elasticsearch.common.inject.TypeLiteral;
import static com.google.common.base.Preconditions.checkNotNull; import java.util.Objects;
import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
/** /**
@ -40,8 +41,8 @@ public final class MembersInjectorLookup<T> implements Element {
private MembersInjector<T> delegate; private MembersInjector<T> delegate;
public MembersInjectorLookup(Object source, TypeLiteral<T> type) { public MembersInjectorLookup(Object source, TypeLiteral<T> type) {
this.source = checkNotNull(source, "source"); this.source = Objects.requireNonNull(source, "source");
this.type = checkNotNull(type, "type"); this.type = Objects.requireNonNull(type, "type");
} }
@Override @Override
@ -68,7 +69,7 @@ public final class MembersInjectorLookup<T> implements Element {
*/ */
public void initializeDelegate(MembersInjector<T> delegate) { public void initializeDelegate(MembersInjector<T> delegate) {
checkState(this.delegate == null, "delegate already initialized"); checkState(this.delegate == null, "delegate already initialized");
this.delegate = checkNotNull(delegate, "delegate"); this.delegate = Objects.requireNonNull(delegate, "delegate");
} }
@Override @Override

View File

@ -27,8 +27,6 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* An error message and the context in which it occurred. Messages are usually created internally by * An error message and the context in which it occurred. Messages are usually created internally by
* Guice and its extensions. Messages can be created explicitly in a module using {@link * Guice and its extensions. Messages can be created explicitly in a module using {@link
@ -52,7 +50,7 @@ public final class Message implements Serializable, Element {
*/ */
public Message(List<Object> sources, String message, Throwable cause) { public Message(List<Object> sources, String message, Throwable cause) {
this.sources = Collections.unmodifiableList(sources); this.sources = Collections.unmodifiableList(sources);
this.message = checkNotNull(message, "message"); this.message = Objects.requireNonNull(message, "message");
this.cause = cause; this.cause = cause;
} }

View File

@ -20,7 +20,8 @@ import org.elasticsearch.common.inject.Binder;
import org.elasticsearch.common.inject.Key; import org.elasticsearch.common.inject.Key;
import org.elasticsearch.common.inject.Provider; import org.elasticsearch.common.inject.Provider;
import static com.google.common.base.Preconditions.checkNotNull; import java.util.Objects;
import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
/** /**
@ -64,8 +65,8 @@ public final class ProviderLookup<T> implements Element {
private Provider<T> delegate; private Provider<T> delegate;
public ProviderLookup(Object source, Key<T> key) { public ProviderLookup(Object source, Key<T> key) {
this.source = checkNotNull(source, "source"); this.source = Objects.requireNonNull(source, "source");
this.key = checkNotNull(key, "key"); this.key = Objects.requireNonNull(key, "key");
} }
@Override @Override
@ -89,7 +90,7 @@ public final class ProviderLookup<T> implements Element {
*/ */
public void initializeDelegate(Provider<T> delegate) { public void initializeDelegate(Provider<T> delegate) {
checkState(this.delegate == null, "delegate already initialized"); checkState(this.delegate == null, "delegate already initialized");
this.delegate = checkNotNull(delegate, "delegate"); this.delegate = Objects.requireNonNull(delegate, "delegate");
} }
@Override @Override

View File

@ -20,8 +20,7 @@ import org.elasticsearch.common.inject.Binder;
import org.elasticsearch.common.inject.Scope; import org.elasticsearch.common.inject.Scope;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* Registration of a scope annotation with the scope that implements it. Instances are created * Registration of a scope annotation with the scope that implements it. Instances are created
@ -40,9 +39,9 @@ public final class ScopeBinding implements Element {
private final Scope scope; private final Scope scope;
ScopeBinding(Object source, Class<? extends Annotation> annotationType, Scope scope) { ScopeBinding(Object source, Class<? extends Annotation> annotationType, Scope scope) {
this.source = checkNotNull(source, "source"); this.source = Objects.requireNonNull(source, "source");
this.annotationType = checkNotNull(annotationType, "annotationType"); this.annotationType = Objects.requireNonNull(annotationType, "annotationType");
this.scope = checkNotNull(scope, "scope"); this.scope = Objects.requireNonNull(scope, "scope");
} }
@Override @Override

View File

@ -19,10 +19,9 @@ package org.elasticsearch.common.inject.spi;
import org.elasticsearch.common.inject.Binder; import org.elasticsearch.common.inject.Binder;
import org.elasticsearch.common.inject.ConfigurationException; import org.elasticsearch.common.inject.ConfigurationException;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* A request to inject the static fields and methods of a type. Requests are created * A request to inject the static fields and methods of a type. Requests are created
* explicitly in a module using {@link org.elasticsearch.common.inject.Binder#requestStaticInjection(Class[]) * explicitly in a module using {@link org.elasticsearch.common.inject.Binder#requestStaticInjection(Class[])
@ -38,8 +37,8 @@ public final class StaticInjectionRequest implements Element {
private final Class<?> type; private final Class<?> type;
StaticInjectionRequest(Object source, Class<?> type) { StaticInjectionRequest(Object source, Class<?> type) {
this.source = checkNotNull(source, "source"); this.source = Objects.requireNonNull(source, "source");
this.type = checkNotNull(type, "type"); this.type = Objects.requireNonNull(type, "type");
} }
@Override @Override

View File

@ -20,7 +20,7 @@ import org.elasticsearch.common.inject.Binder;
import org.elasticsearch.common.inject.TypeLiteral; import org.elasticsearch.common.inject.TypeLiteral;
import org.elasticsearch.common.inject.matcher.Matcher; import org.elasticsearch.common.inject.matcher.Matcher;
import static com.google.common.base.Preconditions.checkNotNull; import java.util.Objects;
/** /**
* Registration of type converters for matching target types. Instances are created * Registration of type converters for matching target types. Instances are created
@ -39,9 +39,9 @@ public final class TypeConverterBinding implements Element {
TypeConverterBinding(Object source, Matcher<? super TypeLiteral<?>> typeMatcher, TypeConverterBinding(Object source, Matcher<? super TypeLiteral<?>> typeMatcher,
TypeConverter typeConverter) { TypeConverter typeConverter) {
this.source = checkNotNull(source, "source"); this.source = Objects.requireNonNull(source, "source");
this.typeMatcher = checkNotNull(typeMatcher, "typeMatcher"); this.typeMatcher = Objects.requireNonNull(typeMatcher, "typeMatcher");
this.typeConverter = checkNotNull(typeConverter, "typeConverter"); this.typeConverter = Objects.requireNonNull(typeConverter, "typeConverter");
} }
@Override @Override

View File

@ -17,7 +17,6 @@
package org.elasticsearch.common.inject.util; package org.elasticsearch.common.inject.util;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import org.elasticsearch.common.inject.AbstractModule; import org.elasticsearch.common.inject.AbstractModule;
import org.elasticsearch.common.inject.Binder; import org.elasticsearch.common.inject.Binder;
import org.elasticsearch.common.inject.Binding; import org.elasticsearch.common.inject.Binding;
@ -36,6 +35,7 @@ import java.lang.annotation.Annotation;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -151,8 +151,8 @@ public final class Modules {
final List<Element> elements = Elements.getElements(baseModules); final List<Element> elements = Elements.getElements(baseModules);
final List<Element> overrideElements = Elements.getElements(overrides); final List<Element> overrideElements = Elements.getElements(overrides);
final Set<Key> overriddenKeys = Sets.newHashSet(); final Set<Key> overriddenKeys = new HashSet<>();
final Set<Class<? extends Annotation>> overridesScopeAnnotations = Sets.newHashSet(); final Set<Class<? extends Annotation>> overridesScopeAnnotations = new HashSet<>();
// execute the overrides module, keeping track of which keys and scopes are bound // execute the overrides module, keeping track of which keys and scopes are bound
new ModuleWriter(binder()) { new ModuleWriter(binder()) {
@ -201,7 +201,7 @@ public final class Modules {
PrivateBinder privateBinder = binder.withSource(privateElements.getSource()) PrivateBinder privateBinder = binder.withSource(privateElements.getSource())
.newPrivateBinder(); .newPrivateBinder();
Set<Key<?>> skippedExposes = Sets.newHashSet(); Set<Key<?>> skippedExposes = new HashSet<>();
for (Key<?> key : privateElements.getExposedKeys()) { for (Key<?> key : privateElements.getExposedKeys()) {
if (overriddenKeys.remove(key)) { if (overriddenKeys.remove(key)) {

View File

@ -20,7 +20,6 @@
package org.elasticsearch.common.io; package org.elasticsearch.common.io;
import com.google.common.base.Charsets; import com.google.common.base.Charsets;
import com.google.common.base.Preconditions;
import org.elasticsearch.common.util.Callback; import org.elasticsearch.common.util.Callback;
import java.io.BufferedReader; import java.io.BufferedReader;
@ -33,6 +32,7 @@ import java.io.StringWriter;
import java.io.Writer; import java.io.Writer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* Simple utility methods for file and stream copying. * Simple utility methods for file and stream copying.
@ -66,8 +66,8 @@ public abstract class Streams {
* @throws IOException in case of I/O errors * @throws IOException in case of I/O errors
*/ */
public static long copy(InputStream in, OutputStream out, byte[] buffer) throws IOException { public static long copy(InputStream in, OutputStream out, byte[] buffer) throws IOException {
Preconditions.checkNotNull(in, "No InputStream specified"); Objects.requireNonNull(in, "No InputStream specified");
Preconditions.checkNotNull(out, "No OutputStream specified"); Objects.requireNonNull(out, "No OutputStream specified");
try { try {
long byteCount = 0; long byteCount = 0;
int bytesRead; int bytesRead;
@ -100,8 +100,8 @@ public abstract class Streams {
* @throws IOException in case of I/O errors * @throws IOException in case of I/O errors
*/ */
public static void copy(byte[] in, OutputStream out) throws IOException { public static void copy(byte[] in, OutputStream out) throws IOException {
Preconditions.checkNotNull(in, "No input byte array specified"); Objects.requireNonNull(in, "No input byte array specified");
Preconditions.checkNotNull(out, "No OutputStream specified"); Objects.requireNonNull(out, "No OutputStream specified");
try { try {
out.write(in); out.write(in);
} finally { } finally {
@ -128,8 +128,8 @@ public abstract class Streams {
* @throws IOException in case of I/O errors * @throws IOException in case of I/O errors
*/ */
public static int copy(Reader in, Writer out) throws IOException { public static int copy(Reader in, Writer out) throws IOException {
Preconditions.checkNotNull(in, "No Reader specified"); Objects.requireNonNull(in, "No Reader specified");
Preconditions.checkNotNull(out, "No Writer specified"); Objects.requireNonNull(out, "No Writer specified");
try { try {
int byteCount = 0; int byteCount = 0;
char[] buffer = new char[BUFFER_SIZE]; char[] buffer = new char[BUFFER_SIZE];
@ -163,8 +163,8 @@ public abstract class Streams {
* @throws IOException in case of I/O errors * @throws IOException in case of I/O errors
*/ */
public static void copy(String in, Writer out) throws IOException { public static void copy(String in, Writer out) throws IOException {
Preconditions.checkNotNull(in, "No input String specified"); Objects.requireNonNull(in, "No input String specified");
Preconditions.checkNotNull(out, "No Writer specified"); Objects.requireNonNull(out, "No Writer specified");
try { try {
out.write(in); out.write(in);
} finally { } finally {

View File

@ -24,10 +24,9 @@ import org.joda.time.DateTimeZone;
import org.joda.time.MutableDateTime; import org.joda.time.MutableDateTime;
import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.DateTimeFormatter;
import java.util.Objects;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* A parser for date/time formatted text with optional date math. * A parser for date/time formatted text with optional date math.
* *
@ -40,7 +39,7 @@ public class DateMathParser {
private final FormatDateTimeFormatter dateTimeFormatter; private final FormatDateTimeFormatter dateTimeFormatter;
public DateMathParser(FormatDateTimeFormatter dateTimeFormatter) { public DateMathParser(FormatDateTimeFormatter dateTimeFormatter) {
checkNotNull(dateTimeFormatter); Objects.requireNonNull(dateTimeFormatter);
this.dateTimeFormatter = dateTimeFormatter; this.dateTimeFormatter = dateTimeFormatter;
} }

View File

@ -25,12 +25,11 @@ import org.elasticsearch.common.io.FastStringReader;
import java.io.IOException; import java.io.IOException;
import java.io.Reader; import java.io.Reader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import static com.google.common.collect.Sets.newHashSet;
/** /**
* *
*/ */
@ -136,7 +135,7 @@ public class AllEntries extends Reader {
} }
public Set<String> fields() { public Set<String> fields() {
Set<String> fields = newHashSet(); Set<String> fields = new HashSet<>();
for (Entry entry : entries) { for (Entry entry : entries) {
fields.add(entry.name()); fields.add(entry.name());
} }

View File

@ -64,6 +64,9 @@ public final class AllTermQuery extends Query {
@Override @Override
public Query rewrite(IndexReader reader) throws IOException { public Query rewrite(IndexReader reader) throws IOException {
if (getBoost() != 1f) {
return super.rewrite(reader);
}
boolean fieldExists = false; boolean fieldExists = false;
boolean hasPayloads = false; boolean hasPayloads = false;
for (LeafReaderContext context : reader.leaves()) { for (LeafReaderContext context : reader.leaves()) {
@ -98,7 +101,7 @@ public final class AllTermQuery extends Query {
final CollectionStatistics collectionStats = searcher.collectionStatistics(term.field()); final CollectionStatistics collectionStats = searcher.collectionStatistics(term.field());
final TermStatistics termStats = searcher.termStatistics(term, termStates); final TermStatistics termStats = searcher.termStatistics(term, termStates);
final Similarity similarity = searcher.getSimilarity(needsScores); final Similarity similarity = searcher.getSimilarity(needsScores);
final SimWeight stats = similarity.computeWeight(getBoost(), collectionStats, termStats); final SimWeight stats = similarity.computeWeight(collectionStats, termStats);
return new Weight(this) { return new Weight(this) {
@Override @Override

View File

@ -120,6 +120,9 @@ public class MultiPhrasePrefixQuery extends Query {
@Override @Override
public Query rewrite(IndexReader reader) throws IOException { public Query rewrite(IndexReader reader) throws IOException {
if (getBoost() != 1.0F) {
return super.rewrite(reader);
}
if (termArrays.isEmpty()) { if (termArrays.isEmpty()) {
return new MatchNoDocsQuery(); return new MatchNoDocsQuery();
} }

View File

@ -1,70 +0,0 @@
/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.elasticsearch.common.lucene.search.function;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.search.Explanation;
/**
*
*/
@Deprecated
public class BoostScoreFunction extends ScoreFunction {
public static final String BOOST_WEIGHT_ERROR_MESSAGE = "'boost_factor' and 'weight' cannot be used together. Use 'weight'.";
private final float boost;
public BoostScoreFunction(float boost) {
super(CombineFunction.MULT);
this.boost = boost;
}
public float getBoost() {
return boost;
}
@Override
public LeafScoreFunction getLeafScoreFunction(LeafReaderContext ctx) {
return new LeafScoreFunction() {
@Override
public double score(int docId, float subQueryScore) {
return boost;
}
@Override
public Explanation explainScore(int docId, Explanation subQueryScore) {
return Explanation.match(boost, "static boost factor", Explanation.match(boost, "boostFactor"));
}
};
}
@Override
public boolean needsScores() {
return false;
}
@Override
public String toString() {
return "boost[" + boost + "]";
}
}

View File

@ -24,8 +24,8 @@ import org.apache.lucene.search.Explanation;
public enum CombineFunction { public enum CombineFunction {
MULT { MULT {
@Override @Override
public float combine(double queryBoost, double queryScore, double funcScore, double maxBoost) { public float combine(double queryScore, double funcScore, double maxBoost) {
return toFloat(queryBoost * queryScore * Math.min(funcScore, maxBoost)); return toFloat(queryScore * Math.min(funcScore, maxBoost));
} }
@Override @Override
@ -34,21 +34,20 @@ public enum CombineFunction {
} }
@Override @Override
public Explanation explain(float queryBoost, Explanation queryExpl, Explanation funcExpl, float maxBoost) { public Explanation explain(Explanation queryExpl, Explanation funcExpl, float maxBoost) {
float score = queryBoost * Math.min(funcExpl.getValue(), maxBoost) * queryExpl.getValue();
Explanation boostExpl = Explanation.match(maxBoost, "maxBoost"); Explanation boostExpl = Explanation.match(maxBoost, "maxBoost");
Explanation minExpl = Explanation.match( Explanation minExpl = Explanation.match(
Math.min(funcExpl.getValue(), maxBoost), Math.min(funcExpl.getValue(), maxBoost),
"min of:", "min of:",
funcExpl, boostExpl); funcExpl, boostExpl);
return Explanation.match(score, "function score, product of:", return Explanation.match(queryExpl.getValue() * minExpl.getValue(),
queryExpl, minExpl, Explanation.match(queryBoost, "queryBoost")); "function score, product of:", queryExpl, minExpl);
} }
}, },
REPLACE { REPLACE {
@Override @Override
public float combine(double queryBoost, double queryScore, double funcScore, double maxBoost) { public float combine(double queryScore, double funcScore, double maxBoost) {
return toFloat(queryBoost * Math.min(funcScore, maxBoost)); return toFloat(Math.min(funcScore, maxBoost));
} }
@Override @Override
@ -57,22 +56,19 @@ public enum CombineFunction {
} }
@Override @Override
public Explanation explain(float queryBoost, Explanation queryExpl, Explanation funcExpl, float maxBoost) { public Explanation explain(Explanation queryExpl, Explanation funcExpl, float maxBoost) {
float score = queryBoost * Math.min(funcExpl.getValue(), maxBoost);
Explanation boostExpl = Explanation.match(maxBoost, "maxBoost"); Explanation boostExpl = Explanation.match(maxBoost, "maxBoost");
Explanation minExpl = Explanation.match( return Explanation.match(
Math.min(funcExpl.getValue(), maxBoost), Math.min(funcExpl.getValue(), maxBoost),
"min of:", "min of:",
funcExpl, boostExpl); funcExpl, boostExpl);
return Explanation.match(score, "function score, product of:",
minExpl, Explanation.match(queryBoost, "queryBoost"));
} }
}, },
SUM { SUM {
@Override @Override
public float combine(double queryBoost, double queryScore, double funcScore, double maxBoost) { public float combine(double queryScore, double funcScore, double maxBoost) {
return toFloat(queryBoost * (queryScore + Math.min(funcScore, maxBoost))); return toFloat(queryScore + Math.min(funcScore, maxBoost));
} }
@Override @Override
@ -81,21 +77,18 @@ public enum CombineFunction {
} }
@Override @Override
public Explanation explain(float queryBoost, Explanation queryExpl, Explanation funcExpl, float maxBoost) { public Explanation explain(Explanation queryExpl, Explanation funcExpl, float maxBoost) {
float score = queryBoost * (Math.min(funcExpl.getValue(), maxBoost) + queryExpl.getValue());
Explanation minExpl = Explanation.match(Math.min(funcExpl.getValue(), maxBoost), "min of:", Explanation minExpl = Explanation.match(Math.min(funcExpl.getValue(), maxBoost), "min of:",
funcExpl, Explanation.match(maxBoost, "maxBoost")); funcExpl, Explanation.match(maxBoost, "maxBoost"));
Explanation sumExpl = Explanation.match(Math.min(funcExpl.getValue(), maxBoost) + queryExpl.getValue(), "sum of", return Explanation.match(Math.min(funcExpl.getValue(), maxBoost) + queryExpl.getValue(), "sum of",
queryExpl, minExpl); queryExpl, minExpl);
return Explanation.match(score, "function score, product of:",
sumExpl, Explanation.match(queryBoost, "queryBoost"));
} }
}, },
AVG { AVG {
@Override @Override
public float combine(double queryBoost, double queryScore, double funcScore, double maxBoost) { public float combine(double queryScore, double funcScore, double maxBoost) {
return toFloat((queryBoost * (Math.min(funcScore, maxBoost) + queryScore) / 2.0)); return toFloat((Math.min(funcScore, maxBoost) + queryScore) / 2.0);
} }
@Override @Override
@ -104,22 +97,19 @@ public enum CombineFunction {
} }
@Override @Override
public Explanation explain(float queryBoost, Explanation queryExpl, Explanation funcExpl, float maxBoost) { public Explanation explain(Explanation queryExpl, Explanation funcExpl, float maxBoost) {
float score = toFloat(queryBoost * (queryExpl.getValue() + Math.min(funcExpl.getValue(), maxBoost)) / 2.0);
Explanation minExpl = Explanation.match(Math.min(funcExpl.getValue(), maxBoost), "min of:", Explanation minExpl = Explanation.match(Math.min(funcExpl.getValue(), maxBoost), "min of:",
funcExpl, Explanation.match(maxBoost, "maxBoost")); funcExpl, Explanation.match(maxBoost, "maxBoost"));
Explanation avgExpl = Explanation.match( return Explanation.match(
toFloat((Math.min(funcExpl.getValue(), maxBoost) + queryExpl.getValue()) / 2.0), "avg of", toFloat((Math.min(funcExpl.getValue(), maxBoost) + queryExpl.getValue()) / 2.0), "avg of",
queryExpl, minExpl); queryExpl, minExpl);
return Explanation.match(score, "function score, product of:",
avgExpl, Explanation.match(queryBoost, "queryBoost"));
} }
}, },
MIN { MIN {
@Override @Override
public float combine(double queryBoost, double queryScore, double funcScore, double maxBoost) { public float combine(double queryScore, double funcScore, double maxBoost) {
return toFloat(queryBoost * Math.min(queryScore, Math.min(funcScore, maxBoost))); return toFloat(Math.min(queryScore, Math.min(funcScore, maxBoost)));
} }
@Override @Override
@ -128,23 +118,20 @@ public enum CombineFunction {
} }
@Override @Override
public Explanation explain(float queryBoost, Explanation queryExpl, Explanation funcExpl, float maxBoost) { public Explanation explain(Explanation queryExpl, Explanation funcExpl, float maxBoost) {
float score = toFloat(queryBoost * Math.min(queryExpl.getValue(), Math.min(funcExpl.getValue(), maxBoost)));
Explanation innerMinExpl = Explanation.match( Explanation innerMinExpl = Explanation.match(
Math.min(funcExpl.getValue(), maxBoost), "min of:", Math.min(funcExpl.getValue(), maxBoost), "min of:",
funcExpl, Explanation.match(maxBoost, "maxBoost")); funcExpl, Explanation.match(maxBoost, "maxBoost"));
Explanation outerMinExpl = Explanation.match( return Explanation.match(
Math.min(Math.min(funcExpl.getValue(), maxBoost), queryExpl.getValue()), "min of", Math.min(Math.min(funcExpl.getValue(), maxBoost), queryExpl.getValue()), "min of",
queryExpl, innerMinExpl); queryExpl, innerMinExpl);
return Explanation.match(score, "function score, product of:",
outerMinExpl, Explanation.match(queryBoost, "queryBoost"));
} }
}, },
MAX { MAX {
@Override @Override
public float combine(double queryBoost, double queryScore, double funcScore, double maxBoost) { public float combine(double queryScore, double funcScore, double maxBoost) {
return toFloat(queryBoost * (Math.max(queryScore, Math.min(funcScore, maxBoost)))); return toFloat(Math.max(queryScore, Math.min(funcScore, maxBoost)));
} }
@Override @Override
@ -153,21 +140,18 @@ public enum CombineFunction {
} }
@Override @Override
public Explanation explain(float queryBoost, Explanation queryExpl, Explanation funcExpl, float maxBoost) { public Explanation explain(Explanation queryExpl, Explanation funcExpl, float maxBoost) {
float score = toFloat(queryBoost * Math.max(queryExpl.getValue(), Math.min(funcExpl.getValue(), maxBoost)));
Explanation innerMinExpl = Explanation.match( Explanation innerMinExpl = Explanation.match(
Math.min(funcExpl.getValue(), maxBoost), "min of:", Math.min(funcExpl.getValue(), maxBoost), "min of:",
funcExpl, Explanation.match(maxBoost, "maxBoost")); funcExpl, Explanation.match(maxBoost, "maxBoost"));
Explanation outerMaxExpl = Explanation.match( return Explanation.match(
Math.max(Math.min(funcExpl.getValue(), maxBoost), queryExpl.getValue()), "max of:", Math.max(Math.min(funcExpl.getValue(), maxBoost), queryExpl.getValue()), "max of:",
queryExpl, innerMinExpl); queryExpl, innerMinExpl);
return Explanation.match(score, "function score, product of:",
outerMaxExpl, Explanation.match(queryBoost, "queryBoost"));
} }
}; };
public abstract float combine(double queryBoost, double queryScore, double funcScore, double maxBoost); public abstract float combine(double queryScore, double funcScore, double maxBoost);
public abstract String getName(); public abstract String getName();
@ -181,5 +165,5 @@ public enum CombineFunction {
return Double.compare(floatVersion, input) == 0 || input == 0.0d ? 0 : 1.d - (floatVersion) / input; return Double.compare(floatVersion, input) == 0 || input == 0.0d ? 0 : 1.d - (floatVersion) / input;
} }
public abstract Explanation explain(float queryBoost, Explanation queryExpl, Explanation funcExpl, float maxBoost); public abstract Explanation explain(Explanation queryExpl, Explanation funcExpl, float maxBoost);
} }

View File

@ -21,13 +21,11 @@ package org.elasticsearch.common.lucene.search.function;
import org.apache.lucene.search.Scorer; import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.Weight; import org.apache.lucene.search.Weight;
import org.apache.lucene.util.BytesRef;
import java.io.IOException; import java.io.IOException;
abstract class CustomBoostFactorScorer extends Scorer { abstract class CustomBoostFactorScorer extends Scorer {
final float subQueryBoost;
final Scorer scorer; final Scorer scorer;
final float maxBoost; final float maxBoost;
final CombineFunction scoreCombiner; final CombineFunction scoreCombiner;
@ -43,7 +41,6 @@ abstract class CustomBoostFactorScorer extends Scorer {
} else { } else {
nextDoc = new MinScoreNextDoc(); nextDoc = new MinScoreNextDoc();
} }
this.subQueryBoost = w.getQuery().getBoost();
this.scorer = scorer; this.scorer = scorer;
this.maxBoost = maxBoost; this.maxBoost = maxBoost;
this.scoreCombiner = scoreCombiner; this.scoreCombiner = scoreCombiner;

View File

@ -114,6 +114,9 @@ public class FiltersFunctionScoreQuery extends Query {
@Override @Override
public Query rewrite(IndexReader reader) throws IOException { public Query rewrite(IndexReader reader) throws IOException {
if (getBoost() != 1.0F) {
return super.rewrite(reader);
}
Query newQ = subQuery.rewrite(reader); Query newQ = subQuery.rewrite(reader);
if (newQ == subQuery) if (newQ == subQuery)
return this; return this;
@ -158,14 +161,12 @@ public class FiltersFunctionScoreQuery extends Query {
@Override @Override
public float getValueForNormalization() throws IOException { public float getValueForNormalization() throws IOException {
float sum = subQueryWeight.getValueForNormalization(); return subQueryWeight.getValueForNormalization();
sum *= getBoost() * getBoost();
return sum;
} }
@Override @Override
public void normalize(float norm, float topLevelBoost) { public void normalize(float norm, float boost) {
subQueryWeight.normalize(norm, topLevelBoost * getBoost()); subQueryWeight.normalize(norm, boost);
} }
@Override @Override
@ -219,10 +220,7 @@ public class FiltersFunctionScoreQuery extends Query {
} }
} }
if (filterExplanations.size() == 0) { if (filterExplanations.size() == 0) {
float sc = getBoost() * subQueryExpl.getValue(); return subQueryExpl;
return Explanation.match(sc, "function score, no filter match, product of:",
subQueryExpl,
Explanation.match(getBoost(), "queryBoost"));
} }
// Second: Compute the factor that would have been computed by the // Second: Compute the factor that would have been computed by the
@ -266,7 +264,7 @@ public class FiltersFunctionScoreQuery extends Query {
CombineFunction.toFloat(factor), CombineFunction.toFloat(factor),
"function score, score mode [" + scoreMode.toString().toLowerCase(Locale.ROOT) + "]", "function score, score mode [" + scoreMode.toString().toLowerCase(Locale.ROOT) + "]",
filterExplanations); filterExplanations);
return combineFunction.explain(getBoost(), subQueryExpl, factorExplanation, maxBoost); return combineFunction.explain(subQueryExpl, factorExplanation, maxBoost);
} }
} }
@ -348,7 +346,7 @@ public class FiltersFunctionScoreQuery extends Query {
} }
} }
} }
return scoreCombiner.combine(subQueryBoost, subQueryScore, factor, maxBoost); return scoreCombiner.combine(subQueryScore, factor, maxBoost);
} }
} }

View File

@ -76,6 +76,9 @@ public class FunctionScoreQuery extends Query {
@Override @Override
public Query rewrite(IndexReader reader) throws IOException { public Query rewrite(IndexReader reader) throws IOException {
if (getBoost() != 1.0F) {
return super.rewrite(reader);
}
Query newQ = subQuery.rewrite(reader); Query newQ = subQuery.rewrite(reader);
if (newQ == subQuery) { if (newQ == subQuery) {
return this; return this;
@ -117,14 +120,12 @@ public class FunctionScoreQuery extends Query {
@Override @Override
public float getValueForNormalization() throws IOException { public float getValueForNormalization() throws IOException {
float sum = subQueryWeight.getValueForNormalization(); return subQueryWeight.getValueForNormalization();
sum *= getBoost() * getBoost();
return sum;
} }
@Override @Override
public void normalize(float norm, float topLevelBoost) { public void normalize(float norm, float boost) {
subQueryWeight.normalize(norm, topLevelBoost * getBoost()); subQueryWeight.normalize(norm, boost);
} }
@Override @Override
@ -148,7 +149,7 @@ public class FunctionScoreQuery extends Query {
} }
if (function != null) { if (function != null) {
Explanation functionExplanation = function.getLeafScoreFunction(context).explainScore(doc, subQueryExpl); Explanation functionExplanation = function.getLeafScoreFunction(context).explainScore(doc, subQueryExpl);
return combineFunction.explain(getBoost(), subQueryExpl, functionExplanation, maxBoost); return combineFunction.explain(subQueryExpl, functionExplanation, maxBoost);
} else { } else {
return subQueryExpl; return subQueryExpl;
} }
@ -174,9 +175,9 @@ public class FunctionScoreQuery extends Query {
// are needed // are needed
float score = needsScores ? scorer.score() : 0f; float score = needsScores ? scorer.score() : 0f;
if (function == null) { if (function == null) {
return subQueryBoost * score; return score;
} else { } else {
return scoreCombiner.combine(subQueryBoost, score, return scoreCombiner.combine(score,
function.score(scorer.docID(), score), maxBoost); function.score(scorer.docID(), score), maxBoost);
} }
} }

View File

@ -35,9 +35,6 @@ public class WeightFactorFunction extends ScoreFunction {
public WeightFactorFunction(float weight, ScoreFunction scoreFunction) { public WeightFactorFunction(float weight, ScoreFunction scoreFunction) {
super(CombineFunction.MULT); super(CombineFunction.MULT);
if (scoreFunction instanceof BoostScoreFunction) {
throw new IllegalArgumentException(BoostScoreFunction.BOOST_WEIGHT_ERROR_MESSAGE);
}
if (scoreFunction == null) { if (scoreFunction == null) {
this.scoreFunction = SCORE_ONE; this.scoreFunction = SCORE_ONE;
} else { } else {

View File

@ -19,10 +19,10 @@
package org.elasticsearch.common.property; package org.elasticsearch.common.property;
import com.google.common.base.Preconditions;
import org.elasticsearch.common.Strings; import org.elasticsearch.common.Strings;
import java.util.HashSet; import java.util.HashSet;
import java.util.Objects;
import java.util.Properties; import java.util.Properties;
import java.util.Set; import java.util.Set;
@ -61,8 +61,8 @@ public class PropertyPlaceholder {
*/ */
public PropertyPlaceholder(String placeholderPrefix, String placeholderSuffix, public PropertyPlaceholder(String placeholderPrefix, String placeholderSuffix,
boolean ignoreUnresolvablePlaceholders) { boolean ignoreUnresolvablePlaceholders) {
Preconditions.checkNotNull(placeholderPrefix, "Argument 'placeholderPrefix' must not be null."); Objects.requireNonNull(placeholderPrefix, "Argument 'placeholderPrefix' must not be null.");
Preconditions.checkNotNull(placeholderSuffix, "Argument 'placeholderSuffix' must not be null."); Objects.requireNonNull(placeholderSuffix, "Argument 'placeholderSuffix' must not be null.");
this.placeholderPrefix = placeholderPrefix; this.placeholderPrefix = placeholderPrefix;
this.placeholderSuffix = placeholderSuffix; this.placeholderSuffix = placeholderSuffix;
this.ignoreUnresolvablePlaceholders = ignoreUnresolvablePlaceholders; this.ignoreUnresolvablePlaceholders = ignoreUnresolvablePlaceholders;
@ -77,7 +77,7 @@ public class PropertyPlaceholder {
* @return the supplied value with placeholders replaced inline. * @return the supplied value with placeholders replaced inline.
*/ */
public String replacePlaceholders(String value, PlaceholderResolver placeholderResolver) { public String replacePlaceholders(String value, PlaceholderResolver placeholderResolver) {
Preconditions.checkNotNull(value, "Argument 'value' must not be null."); Objects.requireNonNull(value, "Argument 'value' must not be null.");
return parseStringValue(value, placeholderResolver, new HashSet<String>()); return parseStringValue(value, placeholderResolver, new HashSet<String>());
} }

View File

@ -20,8 +20,8 @@
package org.elasticsearch.common.recycler; package org.elasticsearch.common.recycler;
import com.carrotsearch.hppc.BitMixer; import com.carrotsearch.hppc.BitMixer;
import com.google.common.collect.Queues;
import org.elasticsearch.ElasticsearchException; import java.util.ArrayDeque;
public enum Recyclers { public enum Recyclers {
; ;
@ -44,7 +44,7 @@ public enum Recyclers {
* Return a recycler based on a deque. * Return a recycler based on a deque.
*/ */
public static <T> Recycler<T> deque(Recycler.C<T> c, int limit) { public static <T> Recycler<T> deque(Recycler.C<T> c, int limit) {
return new DequeRecycler<>(c, Queues.<T>newArrayDeque(), limit); return new DequeRecycler<>(c, new ArrayDeque<>(), limit);
} }
/** /**

View File

@ -19,7 +19,6 @@
package org.elasticsearch.common.util; package org.elasticsearch.common.util;
import com.google.common.base.Charsets; import com.google.common.base.Charsets;
import com.google.common.collect.Sets;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import org.apache.lucene.index.CheckIndex; import org.apache.lucene.index.CheckIndex;
import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriter;
@ -38,13 +37,25 @@ import org.elasticsearch.env.NodeEnvironment;
import org.elasticsearch.env.ShardLock; import org.elasticsearch.env.ShardLock;
import org.elasticsearch.gateway.MetaDataStateFormat; import org.elasticsearch.gateway.MetaDataStateFormat;
import org.elasticsearch.index.Index; import org.elasticsearch.index.Index;
import org.elasticsearch.index.shard.*; import org.elasticsearch.index.shard.ShardId;
import org.elasticsearch.index.shard.ShardPath;
import org.elasticsearch.index.shard.ShardStateMetaData;
import java.io.IOException; import java.io.IOException;
import java.io.PrintStream; import java.io.PrintStream;
import java.nio.file.*; import java.nio.file.DirectoryStream;
import java.nio.file.FileStore;
import java.nio.file.FileVisitResult;
import java.nio.file.FileVisitor;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.BasicFileAttributes;
import java.util.*; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/** /**
*/ */
@ -343,7 +354,7 @@ public class MultiDataPathUpgrader {
} }
private static Set<ShardId> findAllShardIds(Path... locations) throws IOException { private static Set<ShardId> findAllShardIds(Path... locations) throws IOException {
final Set<ShardId> shardIds = Sets.newHashSet(); final Set<ShardId> shardIds = new HashSet<>();
for (final Path location : locations) { for (final Path location : locations) {
if (Files.isDirectory(location)) { if (Files.isDirectory(location)) {
shardIds.addAll(findAllShardsForIndex(location)); shardIds.addAll(findAllShardsForIndex(location));

View File

@ -22,11 +22,10 @@ package org.elasticsearch.common.util.concurrent;
import org.elasticsearch.common.Nullable; import org.elasticsearch.common.Nullable;
import org.elasticsearch.transport.Transports; import org.elasticsearch.transport.Transports;
import java.util.Objects;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.concurrent.locks.AbstractQueuedSynchronizer; import java.util.concurrent.locks.AbstractQueuedSynchronizer;
import static com.google.common.base.Preconditions.checkNotNull;
/** /**
* An abstract implementation of the {@link com.google.common.util.concurrent.ListenableFuture} interface. This * An abstract implementation of the {@link com.google.common.util.concurrent.ListenableFuture} interface. This
* class is preferable to {@link java.util.concurrent.FutureTask} for two * class is preferable to {@link java.util.concurrent.FutureTask} for two
@ -178,7 +177,7 @@ public abstract class BaseFuture<V> implements Future<V> {
* @throws Error if the throwable was an {@link Error}. * @throws Error if the throwable was an {@link Error}.
*/ */
protected boolean setException(Throwable throwable) { protected boolean setException(Throwable throwable) {
boolean result = sync.setException(checkNotNull(throwable)); boolean result = sync.setException(Objects.requireNonNull(throwable));
if (result) { if (result) {
done(); done();
} }

View File

@ -19,6 +19,7 @@
package org.elasticsearch.common.util.concurrent; package org.elasticsearch.common.util.concurrent;
import java.util.Collections;
import java.util.Deque; import java.util.Deque;
import java.util.Queue; import java.util.Queue;
import java.util.Set; import java.util.Set;
@ -29,7 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.LinkedTransferQueue; import java.util.concurrent.LinkedTransferQueue;
import com.google.common.collect.Sets;
/** /**
* *
@ -67,7 +67,7 @@ public abstract class ConcurrentCollections {
} }
public static <V> Set<V> newConcurrentSet() { public static <V> Set<V> newConcurrentSet() {
return Sets.newSetFromMap(ConcurrentCollections.<V, Boolean>newConcurrentMap()); return Collections.newSetFromMap(ConcurrentCollections.<V, Boolean>newConcurrentMap());
} }
public static <T> Queue<T> newQueue() { public static <T> Queue<T> newQueue() {

View File

@ -0,0 +1,79 @@
/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.elasticsearch.common.util.set;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
public final class Sets {
private Sets() {
}
public static <T> HashSet<T> newHashSet(Iterator<T> iterator) {
Objects.requireNonNull(iterator);
HashSet<T> set = new HashSet<>();
while (iterator.hasNext()) {
set.add(iterator.next());
}
return set;
}
public static <T> HashSet<T> newHashSet(Iterable<T> iterable) {
Objects.requireNonNull(iterable);
return iterable instanceof Collection ? new HashSet<>((Collection)iterable) : newHashSet(iterable.iterator());
}
public static <T> HashSet<T> newHashSet(T... elements) {
Objects.requireNonNull(elements);
HashSet<T> set = new HashSet<>(elements.length);
Collections.addAll(set, elements);
return set;
}
public static <T> Set<T> newConcurrentHashSet() {
return Collections.newSetFromMap(new ConcurrentHashMap<>());
}
public static <T> boolean haveEmptyIntersection(Set<T> left, Set<T> right) {
Objects.requireNonNull(left);
Objects.requireNonNull(right);
return !left.stream().anyMatch(k -> right.contains(k));
}
public static <T> Set<T> difference(Set<T> left, Set<T> right) {
Objects.requireNonNull(left);
Objects.requireNonNull(right);
return left.stream().filter(k -> !right.contains(k)).collect(Collectors.toSet());
}
public static <T> Set<T> union(Set<T> left, Set<T> right) {
Objects.requireNonNull(left);
Objects.requireNonNull(right);
Set<T> union = new HashSet<>(left);
union.addAll(right);
return union;
}
}

View File

@ -20,13 +20,19 @@
package org.elasticsearch.discovery.local; package org.elasticsearch.discovery.local;
import org.elasticsearch.Version; import org.elasticsearch.Version;
import org.elasticsearch.cluster.*; import org.elasticsearch.cluster.ClusterChangedEvent;
import org.elasticsearch.cluster.ClusterName;
import org.elasticsearch.cluster.ClusterService;
import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.ClusterStateNonMasterUpdateTask;
import org.elasticsearch.cluster.Diff;
import org.elasticsearch.cluster.IncompatibleClusterStateVersionException;
import org.elasticsearch.cluster.ProcessedClusterStateNonMasterUpdateTask;
import org.elasticsearch.cluster.block.ClusterBlocks; import org.elasticsearch.cluster.block.ClusterBlocks;
import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodeService; import org.elasticsearch.cluster.node.DiscoveryNodeService;
import org.elasticsearch.cluster.node.DiscoveryNodes; import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.RoutingService; import org.elasticsearch.cluster.routing.RoutingService;
import org.elasticsearch.cluster.routing.allocation.AllocationService;
import org.elasticsearch.cluster.routing.allocation.RoutingAllocation; import org.elasticsearch.cluster.routing.allocation.RoutingAllocation;
import org.elasticsearch.common.component.AbstractLifecycleComponent; import org.elasticsearch.common.component.AbstractLifecycleComponent;
import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.inject.Inject;
@ -36,7 +42,12 @@ import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.util.concurrent.ConcurrentCollections; import org.elasticsearch.common.util.concurrent.ConcurrentCollections;
import org.elasticsearch.discovery.*; import org.elasticsearch.discovery.AckClusterStatePublishResponseHandler;
import org.elasticsearch.discovery.BlockingClusterStatePublishResponseHandler;
import org.elasticsearch.discovery.Discovery;
import org.elasticsearch.discovery.DiscoveryService;
import org.elasticsearch.discovery.DiscoverySettings;
import org.elasticsearch.discovery.InitialStateDiscoveryListener;
import org.elasticsearch.node.service.NodeService; import org.elasticsearch.node.service.NodeService;
import org.elasticsearch.transport.TransportService; import org.elasticsearch.transport.TransportService;
@ -48,7 +59,6 @@ import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import static com.google.common.collect.Sets.newHashSet;
import static org.elasticsearch.cluster.ClusterState.Builder; import static org.elasticsearch.cluster.ClusterState.Builder;
/** /**
@ -227,7 +237,7 @@ public class LocalDiscovery extends AbstractLifecycleComponent<Discovery> implem
firstMaster.master = true; firstMaster.master = true;
} }
final Set<String> newMembers = newHashSet(); final Set<String> newMembers = new HashSet<>();
for (LocalDiscovery discovery : clusterGroup.members()) { for (LocalDiscovery discovery : clusterGroup.members()) {
newMembers.add(discovery.localNode.id()); newMembers.add(discovery.localNode.id());
} }

View File

@ -19,7 +19,6 @@
package org.elasticsearch.discovery.zen; package org.elasticsearch.discovery.zen;
import com.google.common.collect.Sets;
import org.elasticsearch.ExceptionsHelper; import org.elasticsearch.ExceptionsHelper;
import org.elasticsearch.Version; import org.elasticsearch.Version;
import org.elasticsearch.cluster.ClusterChangedEvent; import org.elasticsearch.cluster.ClusterChangedEvent;
@ -73,6 +72,7 @@ import org.elasticsearch.transport.TransportService;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Queue; import java.util.Queue;
@ -948,9 +948,9 @@ public class ZenDiscovery extends AbstractLifecycleComponent<Discovery> implemen
} }
// nodes discovered during pinging // nodes discovered during pinging
Set<DiscoveryNode> activeNodes = Sets.newHashSet(); Set<DiscoveryNode> activeNodes = new HashSet<>();
// nodes discovered who has previously been part of the cluster and do not ping for the very first time // nodes discovered who has previously been part of the cluster and do not ping for the very first time
Set<DiscoveryNode> joinedOnceActiveNodes = Sets.newHashSet(); Set<DiscoveryNode> joinedOnceActiveNodes = new HashSet<>();
if (localNode.masterNode()) { if (localNode.masterNode()) {
activeNodes.add(localNode); activeNodes.add(localNode);
long joinsCounter = clusterJoinsCounter.get(); long joinsCounter = clusterJoinsCounter.get();

View File

@ -20,12 +20,15 @@
package org.elasticsearch.env; package org.elasticsearch.env;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.SegmentInfos; import org.apache.lucene.index.SegmentInfos;
import org.apache.lucene.store.*; import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.Lock;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.store.NativeFSLockFactory;
import org.apache.lucene.store.SimpleFSDirectory;
import org.apache.lucene.util.IOUtils; import org.apache.lucene.util.IOUtils;
import org.elasticsearch.ElasticsearchException; import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.cluster.metadata.IndexMetaData;
@ -34,7 +37,6 @@ import org.elasticsearch.common.SuppressForbidden;
import org.elasticsearch.common.component.AbstractComponent; import org.elasticsearch.common.component.AbstractComponent;
import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.io.FileSystemUtils; import org.elasticsearch.common.io.FileSystemUtils;
import org.elasticsearch.common.io.PathUtils;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.Index; import org.elasticsearch.index.Index;
@ -46,8 +48,21 @@ import org.elasticsearch.monitor.fs.FsProbe;
import java.io.Closeable; import java.io.Closeable;
import java.io.IOException; import java.io.IOException;
import java.nio.file.*; import java.nio.file.AtomicMoveNotSupportedException;
import java.util.*; import java.nio.file.DirectoryStream;
import java.nio.file.FileStore;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
@ -643,7 +658,7 @@ public class NodeEnvironment extends AbstractComponent implements Closeable {
throw new IllegalStateException("node is not configured to store local location"); throw new IllegalStateException("node is not configured to store local location");
} }
assert assertEnvIsLocked(); assert assertEnvIsLocked();
Set<String> indices = Sets.newHashSet(); Set<String> indices = new HashSet<>();
for (NodePath nodePath : nodePaths) { for (NodePath nodePath : nodePaths) {
Path indicesLocation = nodePath.indicesPath; Path indicesLocation = nodePath.indicesPath;
if (Files.isDirectory(indicesLocation)) { if (Files.isDirectory(indicesLocation)) {
@ -673,7 +688,7 @@ public class NodeEnvironment extends AbstractComponent implements Closeable {
throw new IllegalStateException("node is not configured to store local location"); throw new IllegalStateException("node is not configured to store local location");
} }
assert assertEnvIsLocked(); assert assertEnvIsLocked();
final Set<ShardId> shardIds = Sets.newHashSet(); final Set<ShardId> shardIds = new HashSet<>();
String indexName = index.name(); String indexName = index.name();
for (final NodePath nodePath : nodePaths) { for (final NodePath nodePath : nodePaths) {
Path location = nodePath.indicesPath; Path location = nodePath.indicesPath;

View File

@ -19,13 +19,14 @@
package org.elasticsearch.http; package org.elasticsearch.http;
import com.google.common.base.Preconditions;
import org.elasticsearch.common.inject.AbstractModule; import org.elasticsearch.common.inject.AbstractModule;
import org.elasticsearch.common.logging.ESLogger; import org.elasticsearch.common.logging.ESLogger;
import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.logging.Loggers;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.http.netty.NettyHttpServerTransport; import org.elasticsearch.http.netty.NettyHttpServerTransport;
import java.util.Objects;
/** /**
* *
*/ */
@ -50,8 +51,8 @@ public class HttpServerModule extends AbstractModule {
} }
public void setHttpServerTransport(Class<? extends HttpServerTransport> httpServerTransport, String source) { public void setHttpServerTransport(Class<? extends HttpServerTransport> httpServerTransport, String source) {
Preconditions.checkNotNull(httpServerTransport, "Configured http server transport may not be null"); Objects.requireNonNull(httpServerTransport, "Configured http server transport may not be null");
Preconditions.checkNotNull(source, "Plugin, that changes transport may not be null"); Objects.requireNonNull(source, "Plugin, that changes transport may not be null");
logger.info("Using [{}] as http transport, overridden by [{}]", httpServerTransportClass.getName(), source); logger.info("Using [{}] as http transport, overridden by [{}]", httpServerTransportClass.getName(), source);
this.httpServerTransportClass = httpServerTransport; this.httpServerTransportClass = httpServerTransport;
} }

View File

@ -19,8 +19,6 @@
package org.elasticsearch.index.engine; package org.elasticsearch.index.engine;
import com.google.common.base.Preconditions;
import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.FilterLeafReader; import org.apache.lucene.index.FilterLeafReader;
import org.apache.lucene.index.IndexCommit; import org.apache.lucene.index.IndexCommit;
@ -71,6 +69,7 @@ import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Condition;
@ -100,8 +99,8 @@ public abstract class Engine implements Closeable {
protected volatile Throwable failedEngine = null; protected volatile Throwable failedEngine = null;
protected Engine(EngineConfig engineConfig) { protected Engine(EngineConfig engineConfig) {
Preconditions.checkNotNull(engineConfig.getStore(), "Store must be provided to the engine"); Objects.requireNonNull(engineConfig.getStore(), "Store must be provided to the engine");
Preconditions.checkNotNull(engineConfig.getDeletionPolicy(), "Snapshot deletion policy must be provided to the engine"); Objects.requireNonNull(engineConfig.getDeletionPolicy(), "Snapshot deletion policy must be provided to the engine");
this.engineConfig = engineConfig; this.engineConfig = engineConfig;
this.shardId = engineConfig.getShardId(); this.shardId = engineConfig.getShardId();

View File

@ -72,7 +72,7 @@ public class PackedArrayIndexFieldData extends AbstractIndexFieldData<AtomicNume
FieldDataType fieldDataType, IndexFieldDataCache cache, NumericType numericType, FieldDataType fieldDataType, IndexFieldDataCache cache, NumericType numericType,
CircuitBreakerService breakerService) { CircuitBreakerService breakerService) {
super(index, indexSettings, fieldNames, fieldDataType, cache); super(index, indexSettings, fieldNames, fieldDataType, cache);
Preconditions.checkNotNull(numericType); Objects.requireNonNull(numericType);
Preconditions.checkArgument(EnumSet.of(NumericType.BOOLEAN, NumericType.BYTE, NumericType.SHORT, NumericType.INT, NumericType.LONG).contains(numericType), getClass().getSimpleName() + " only supports integer types, not " + numericType); Preconditions.checkArgument(EnumSet.of(NumericType.BOOLEAN, NumericType.BYTE, NumericType.SHORT, NumericType.INT, NumericType.LONG).contains(numericType), getClass().getSimpleName() + " only supports integer types, not " + numericType);
this.numericType = numericType; this.numericType = numericType;
this.breakerService = breakerService; this.breakerService = breakerService;

View File

@ -19,25 +19,15 @@
package org.elasticsearch.index.fielddata.plain; package org.elasticsearch.index.fielddata.plain;
import com.carrotsearch.hppc.ObjectObjectHashMap;
import com.carrotsearch.hppc.cursors.ObjectObjectCursor;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedSet;
import org.apache.lucene.index.*; import org.apache.lucene.index.*;
import org.apache.lucene.index.MultiDocValues.OrdinalMap; import org.apache.lucene.index.MultiDocValues.OrdinalMap;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.util.Accountable; import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LongValues; import org.apache.lucene.util.LongValues;
import org.apache.lucene.util.PagedBytes;
import org.apache.lucene.util.packed.PackedInts; import org.apache.lucene.util.packed.PackedInts;
import org.apache.lucene.util.packed.PackedLongValues;
import org.elasticsearch.ElasticsearchException; import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.Version;
import org.elasticsearch.common.Nullable; import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.breaker.CircuitBreaker; import org.elasticsearch.common.breaker.CircuitBreaker;
import org.elasticsearch.common.collect.ImmutableOpenMap;
import org.elasticsearch.common.lease.Releasable; import org.elasticsearch.common.lease.Releasable;
import org.elasticsearch.common.lease.Releasables; import org.elasticsearch.common.lease.Releasables;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
@ -46,15 +36,11 @@ import org.elasticsearch.index.Index;
import org.elasticsearch.index.fielddata.*; import org.elasticsearch.index.fielddata.*;
import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested; import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested;
import org.elasticsearch.index.fielddata.fieldcomparator.BytesRefFieldComparatorSource; import org.elasticsearch.index.fielddata.fieldcomparator.BytesRefFieldComparatorSource;
import org.elasticsearch.index.fielddata.ordinals.Ordinals;
import org.elasticsearch.index.fielddata.ordinals.OrdinalsBuilder;
import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.DocumentMapper;
import org.elasticsearch.index.mapper.DocumentTypeListener;
import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.MappedFieldType;
import org.elasticsearch.index.mapper.MappedFieldType.Names; import org.elasticsearch.index.mapper.MappedFieldType.Names;
import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.mapper.MapperService;
import org.elasticsearch.index.mapper.internal.ParentFieldMapper; import org.elasticsearch.index.mapper.internal.ParentFieldMapper;
import org.elasticsearch.index.mapper.internal.UidFieldMapper;
import org.elasticsearch.index.settings.IndexSettings; import org.elasticsearch.index.settings.IndexSettings;
import org.elasticsearch.indices.breaker.CircuitBreakerService; import org.elasticsearch.indices.breaker.CircuitBreakerService;
import org.elasticsearch.search.MultiValueMode; import org.elasticsearch.search.MultiValueMode;

View File

@ -19,7 +19,6 @@
package org.elasticsearch.index.get; package org.elasticsearch.index.get;
import com.google.common.collect.Sets;
import org.apache.lucene.index.Term; import org.apache.lucene.index.Term;
import org.elasticsearch.ElasticsearchException; import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.common.Nullable; import org.elasticsearch.common.Nullable;
@ -28,6 +27,7 @@ import org.elasticsearch.common.collect.Tuple;
import org.elasticsearch.common.lucene.uid.Versions; import org.elasticsearch.common.lucene.uid.Versions;
import org.elasticsearch.common.metrics.CounterMetric; import org.elasticsearch.common.metrics.CounterMetric;
import org.elasticsearch.common.metrics.MeanMetric; import org.elasticsearch.common.metrics.MeanMetric;
import org.elasticsearch.common.util.set.Sets;
import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentHelper;
import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.common.xcontent.XContentType;

View File

@ -42,6 +42,7 @@ public class IndexingStats implements Streamable, ToXContent {
private long indexCount; private long indexCount;
private long indexTimeInMillis; private long indexTimeInMillis;
private long indexCurrent; private long indexCurrent;
private long indexFailedCount;
private long deleteCount; private long deleteCount;
private long deleteTimeInMillis; private long deleteTimeInMillis;
@ -56,10 +57,11 @@ public class IndexingStats implements Streamable, ToXContent {
} }
public Stats(long indexCount, long indexTimeInMillis, long indexCurrent, long deleteCount, long deleteTimeInMillis, long deleteCurrent, long noopUpdateCount, boolean isThrottled, long throttleTimeInMillis) { public Stats(long indexCount, long indexTimeInMillis, long indexCurrent, long indexFailedCount, long deleteCount, long deleteTimeInMillis, long deleteCurrent, long noopUpdateCount, boolean isThrottled, long throttleTimeInMillis) {
this.indexCount = indexCount; this.indexCount = indexCount;
this.indexTimeInMillis = indexTimeInMillis; this.indexTimeInMillis = indexTimeInMillis;
this.indexCurrent = indexCurrent; this.indexCurrent = indexCurrent;
this.indexFailedCount = indexFailedCount;
this.deleteCount = deleteCount; this.deleteCount = deleteCount;
this.deleteTimeInMillis = deleteTimeInMillis; this.deleteTimeInMillis = deleteTimeInMillis;
this.deleteCurrent = deleteCurrent; this.deleteCurrent = deleteCurrent;
@ -72,6 +74,7 @@ public class IndexingStats implements Streamable, ToXContent {
indexCount += stats.indexCount; indexCount += stats.indexCount;
indexTimeInMillis += stats.indexTimeInMillis; indexTimeInMillis += stats.indexTimeInMillis;
indexCurrent += stats.indexCurrent; indexCurrent += stats.indexCurrent;
indexFailedCount += stats.indexFailedCount;
deleteCount += stats.deleteCount; deleteCount += stats.deleteCount;
deleteTimeInMillis += stats.deleteTimeInMillis; deleteTimeInMillis += stats.deleteTimeInMillis;
@ -88,6 +91,10 @@ public class IndexingStats implements Streamable, ToXContent {
return indexCount; return indexCount;
} }
public long getIndexFailedCount() {
return indexFailedCount;
}
public TimeValue getIndexTime() { public TimeValue getIndexTime() {
return new TimeValue(indexTimeInMillis); return new TimeValue(indexTimeInMillis);
} }
@ -156,6 +163,10 @@ public class IndexingStats implements Streamable, ToXContent {
indexTimeInMillis = in.readVLong(); indexTimeInMillis = in.readVLong();
indexCurrent = in.readVLong(); indexCurrent = in.readVLong();
if(in.getVersion().onOrAfter(Version.V_2_1_0)){
indexFailedCount = in.readVLong();
}
deleteCount = in.readVLong(); deleteCount = in.readVLong();
deleteTimeInMillis = in.readVLong(); deleteTimeInMillis = in.readVLong();
deleteCurrent = in.readVLong(); deleteCurrent = in.readVLong();
@ -170,6 +181,10 @@ public class IndexingStats implements Streamable, ToXContent {
out.writeVLong(indexTimeInMillis); out.writeVLong(indexTimeInMillis);
out.writeVLong(indexCurrent); out.writeVLong(indexCurrent);
if(out.getVersion().onOrAfter(Version.V_2_1_0)) {
out.writeVLong(indexFailedCount);
}
out.writeVLong(deleteCount); out.writeVLong(deleteCount);
out.writeVLong(deleteTimeInMillis); out.writeVLong(deleteTimeInMillis);
out.writeVLong(deleteCurrent); out.writeVLong(deleteCurrent);
@ -184,6 +199,7 @@ public class IndexingStats implements Streamable, ToXContent {
builder.field(Fields.INDEX_TOTAL, indexCount); builder.field(Fields.INDEX_TOTAL, indexCount);
builder.timeValueField(Fields.INDEX_TIME_IN_MILLIS, Fields.INDEX_TIME, indexTimeInMillis); builder.timeValueField(Fields.INDEX_TIME_IN_MILLIS, Fields.INDEX_TIME, indexTimeInMillis);
builder.field(Fields.INDEX_CURRENT, indexCurrent); builder.field(Fields.INDEX_CURRENT, indexCurrent);
builder.field(Fields.INDEX_FAILED, indexFailedCount);
builder.field(Fields.DELETE_TOTAL, deleteCount); builder.field(Fields.DELETE_TOTAL, deleteCount);
builder.timeValueField(Fields.DELETE_TIME_IN_MILLIS, Fields.DELETE_TIME, deleteTimeInMillis); builder.timeValueField(Fields.DELETE_TIME_IN_MILLIS, Fields.DELETE_TIME, deleteTimeInMillis);
@ -268,6 +284,7 @@ public class IndexingStats implements Streamable, ToXContent {
static final XContentBuilderString INDEX_TIME = new XContentBuilderString("index_time"); static final XContentBuilderString INDEX_TIME = new XContentBuilderString("index_time");
static final XContentBuilderString INDEX_TIME_IN_MILLIS = new XContentBuilderString("index_time_in_millis"); static final XContentBuilderString INDEX_TIME_IN_MILLIS = new XContentBuilderString("index_time_in_millis");
static final XContentBuilderString INDEX_CURRENT = new XContentBuilderString("index_current"); static final XContentBuilderString INDEX_CURRENT = new XContentBuilderString("index_current");
static final XContentBuilderString INDEX_FAILED = new XContentBuilderString("index_failed");
static final XContentBuilderString DELETE_TOTAL = new XContentBuilderString("delete_total"); static final XContentBuilderString DELETE_TOTAL = new XContentBuilderString("delete_total");
static final XContentBuilderString DELETE_TIME = new XContentBuilderString("delete_time"); static final XContentBuilderString DELETE_TIME = new XContentBuilderString("delete_time");
static final XContentBuilderString DELETE_TIME_IN_MILLIS = new XContentBuilderString("delete_time_in_millis"); static final XContentBuilderString DELETE_TIME_IN_MILLIS = new XContentBuilderString("delete_time_in_millis");

View File

@ -178,6 +178,8 @@ public class ShardIndexingService extends AbstractIndexShardComponent {
public void postIndex(Engine.Index index, Throwable ex) { public void postIndex(Engine.Index index, Throwable ex) {
totalStats.indexCurrent.dec(); totalStats.indexCurrent.dec();
typeStats(index.type()).indexCurrent.dec(); typeStats(index.type()).indexCurrent.dec();
totalStats.indexFailed.inc();
typeStats(index.type()).indexFailed.inc();
for (IndexingOperationListener listener : listeners) { for (IndexingOperationListener listener : listeners) {
try { try {
listener.postIndex(index, ex); listener.postIndex(index, ex);
@ -277,6 +279,7 @@ public class ShardIndexingService extends AbstractIndexShardComponent {
public final MeanMetric indexMetric = new MeanMetric(); public final MeanMetric indexMetric = new MeanMetric();
public final MeanMetric deleteMetric = new MeanMetric(); public final MeanMetric deleteMetric = new MeanMetric();
public final CounterMetric indexCurrent = new CounterMetric(); public final CounterMetric indexCurrent = new CounterMetric();
public final CounterMetric indexFailed = new CounterMetric();
public final CounterMetric deleteCurrent = new CounterMetric(); public final CounterMetric deleteCurrent = new CounterMetric();
public final CounterMetric noopUpdates = new CounterMetric(); public final CounterMetric noopUpdates = new CounterMetric();
public final CounterMetric throttleTimeMillisMetric = new CounterMetric(); public final CounterMetric throttleTimeMillisMetric = new CounterMetric();
@ -293,7 +296,7 @@ public class ShardIndexingService extends AbstractIndexShardComponent {
} }
} }
return new IndexingStats.Stats( return new IndexingStats.Stats(
indexMetric.count(), TimeUnit.NANOSECONDS.toMillis(indexMetric.sum()), indexCurrent.count(), indexMetric.count(), TimeUnit.NANOSECONDS.toMillis(indexMetric.sum()), indexCurrent.count(), indexFailed.count(),
deleteMetric.count(), TimeUnit.NANOSECONDS.toMillis(deleteMetric.sum()), deleteCurrent.count(), deleteMetric.count(), TimeUnit.NANOSECONDS.toMillis(deleteMetric.sum()), deleteCurrent.count(),
noopUpdates.count(), isThrottled, TimeUnit.MILLISECONDS.toMillis(throttleTimeMillisMetric.count() + TimeValue.nsecToMSec(currentThrottleNS))); noopUpdates.count(), isThrottled, TimeUnit.MILLISECONDS.toMillis(throttleTimeMillisMetric.count() + TimeValue.nsecToMSec(currentThrottleNS)));
} }

View File

@ -21,7 +21,6 @@ package org.elasticsearch.index.mapper;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.collect.Collections2; import com.google.common.collect.Collections2;
import com.google.common.collect.Sets;
import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.Analyzer;
import org.elasticsearch.common.collect.CopyOnWriteHashMap; import org.elasticsearch.common.collect.CopyOnWriteHashMap;
import org.elasticsearch.common.regex.Regex; import org.elasticsearch.common.regex.Regex;
@ -30,6 +29,7 @@ import org.elasticsearch.index.analysis.FieldNameAnalyzer;
import java.util.AbstractMap; import java.util.AbstractMap;
import java.util.Collection; import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -92,7 +92,7 @@ public final class DocumentFieldMappers implements Iterable<FieldMapper> {
} }
public Collection<String> simpleMatchToFullName(String pattern) { public Collection<String> simpleMatchToFullName(String pattern) {
Set<String> fields = Sets.newHashSet(); Set<String> fields = new HashSet<>();
for (FieldMapper fieldMapper : this) { for (FieldMapper fieldMapper : this) {
if (Regex.simpleMatch(pattern, fieldMapper.fieldType().names().fullName())) { if (Regex.simpleMatch(pattern, fieldMapper.fieldType().names().fullName())) {
fields.add(fieldMapper.fieldType().names().fullName()); fields.add(fieldMapper.fieldType().names().fullName());

View File

@ -19,7 +19,6 @@
package org.elasticsearch.index.mapper; package org.elasticsearch.index.mapper;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.search.DocIdSet; import org.apache.lucene.search.DocIdSet;
@ -68,6 +67,7 @@ import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock;
/** /**
@ -142,7 +142,7 @@ public class DocumentMapper implements ToXContent {
} }
public DocumentMapper build(MapperService mapperService, DocumentMapperParser docMapperParser) { public DocumentMapper build(MapperService mapperService, DocumentMapperParser docMapperParser) {
Preconditions.checkNotNull(rootObjectMapper, "Mapper builder must have the root object mapper set"); Objects.requireNonNull(rootObjectMapper, "Mapper builder must have the root object mapper set");
return new DocumentMapper(mapperService, indexSettings, docMapperParser, rootObjectMapper, meta, rootMappers, sourceTransforms, mapperService.mappingLock); return new DocumentMapper(mapperService, indexSettings, docMapperParser, rootObjectMapper, meta, rootMappers, sourceTransforms, mapperService.mappingLock);
} }
} }

View File

@ -19,8 +19,6 @@
package org.elasticsearch.index.mapper; package org.elasticsearch.index.mapper;
import com.google.common.collect.Sets;
import org.apache.lucene.document.Field; import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexOptions; import org.apache.lucene.index.IndexOptions;
import org.apache.lucene.index.IndexableField; import org.apache.lucene.index.IndexableField;
@ -34,20 +32,20 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentHelper;
import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.index.mapper.core.DateFieldMapper.DateFieldType;
import org.elasticsearch.index.mapper.core.NumberFieldMapper; import org.elasticsearch.index.mapper.core.NumberFieldMapper;
import org.elasticsearch.index.mapper.core.StringFieldMapper; import org.elasticsearch.index.mapper.core.StringFieldMapper;
import org.elasticsearch.index.mapper.core.DateFieldMapper.DateFieldType;
import org.elasticsearch.index.mapper.core.StringFieldMapper.StringFieldType; import org.elasticsearch.index.mapper.core.StringFieldMapper.StringFieldType;
import org.elasticsearch.index.mapper.internal.TypeFieldMapper; import org.elasticsearch.index.mapper.internal.TypeFieldMapper;
import org.elasticsearch.index.mapper.internal.UidFieldMapper; import org.elasticsearch.index.mapper.internal.UidFieldMapper;
import org.elasticsearch.index.mapper.object.ArrayValueMapperParser; import org.elasticsearch.index.mapper.object.ArrayValueMapperParser;
import org.elasticsearch.index.mapper.object.ObjectMapper; import org.elasticsearch.index.mapper.object.ObjectMapper;
import org.elasticsearch.index.mapper.object.RootObjectMapper; import org.elasticsearch.index.mapper.object.RootObjectMapper;
import org.elasticsearch.percolator.PercolatorService;
import java.io.Closeable; import java.io.Closeable;
import java.io.IOException; import java.io.IOException;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -169,7 +167,7 @@ class DocumentParser implements Closeable {
} }
// apply doc boost // apply doc boost
if (context.docBoost() != 1.0f) { if (context.docBoost() != 1.0f) {
Set<String> encounteredFields = Sets.newHashSet(); Set<String> encounteredFields = new HashSet<>();
for (ParseContext.Document doc : context.docs()) { for (ParseContext.Document doc : context.docs()) {
encounteredFields.clear(); encounteredFields.clear();
for (IndexableField field : doc) { for (IndexableField field : doc) {

View File

@ -21,12 +21,12 @@ package org.elasticsearch.index.mapper;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.collect.Iterators; import com.google.common.collect.Iterators;
import com.google.common.collect.Sets;
import org.elasticsearch.common.collect.CopyOnWriteHashMap; import org.elasticsearch.common.collect.CopyOnWriteHashMap;
import org.elasticsearch.common.regex.Regex; import org.elasticsearch.common.regex.Regex;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -152,7 +152,7 @@ class FieldTypeLookup implements Iterable<MappedFieldType> {
* Returns a list of the index names of a simple match regex like pattern against full name and index name. * Returns a list of the index names of a simple match regex like pattern against full name and index name.
*/ */
public Collection<String> simpleMatchToIndexNames(String pattern) { public Collection<String> simpleMatchToIndexNames(String pattern) {
Set<String> fields = Sets.newHashSet(); Set<String> fields = new HashSet<>();
for (MappedFieldType fieldType : this) { for (MappedFieldType fieldType : this) {
if (Regex.simpleMatch(pattern, fieldType.names().fullName())) { if (Regex.simpleMatch(pattern, fieldType.names().fullName())) {
fields.add(fieldType.names().indexName()); fields.add(fieldType.names().indexName());
@ -167,7 +167,7 @@ class FieldTypeLookup implements Iterable<MappedFieldType> {
* Returns a list of the full names of a simple match regex like pattern against full name and index name. * Returns a list of the full names of a simple match regex like pattern against full name and index name.
*/ */
public Collection<String> simpleMatchToFullName(String pattern) { public Collection<String> simpleMatchToFullName(String pattern) {
Set<String> fields = Sets.newHashSet(); Set<String> fields = new HashSet<>();
for (MappedFieldType fieldType : this) { for (MappedFieldType fieldType : this) {
if (Regex.simpleMatch(pattern, fieldType.names().fullName())) { if (Regex.simpleMatch(pattern, fieldType.names().fullName())) {
fields.add(fieldType.names().fullName()); fields.add(fieldType.names().fullName());

View File

@ -18,7 +18,6 @@
*/ */
package org.elasticsearch.index.mapper.core; package org.elasticsearch.index.mapper.core;
import com.google.common.collect.Sets;
import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.codecs.PostingsFormat; import org.apache.lucene.codecs.PostingsFormat;
@ -29,6 +28,7 @@ import org.elasticsearch.ElasticsearchParseException;
import org.elasticsearch.Version; import org.elasticsearch.Version;
import org.elasticsearch.common.ParseField; import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.util.set.Sets;
import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentParser;

View File

@ -219,6 +219,9 @@ public class DateFieldMapper extends NumberFieldMapper {
@Override @Override
public Query rewrite(IndexReader reader) throws IOException { public Query rewrite(IndexReader reader) throws IOException {
if (getBoost() != 1.0F) {
return super.rewrite(reader);
}
return innerRangeQuery(lowerTerm, upperTerm, includeLower, includeUpper, timeZone, forcedDateParser); return innerRangeQuery(lowerTerm, upperTerm, includeLower, includeUpper, timeZone, forcedDateParser);
} }

View File

@ -19,7 +19,6 @@
package org.elasticsearch.index.mapper.object; package org.elasticsearch.index.mapper.object;
import com.google.common.collect.Sets;
import org.elasticsearch.common.Nullable; import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.Strings; import org.elasticsearch.common.Strings;
import org.elasticsearch.common.joda.FormatDateTimeFormatter; import org.elasticsearch.common.joda.FormatDateTimeFormatter;
@ -38,6 +37,7 @@ import org.elasticsearch.index.settings.IndexSettings;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -66,7 +66,7 @@ public class RootObjectMapper extends ObjectMapper {
protected final List<DynamicTemplate> dynamicTemplates = new ArrayList<>(); protected final List<DynamicTemplate> dynamicTemplates = new ArrayList<>();
// we use this to filter out seen date formats, because we might get duplicates during merging // we use this to filter out seen date formats, because we might get duplicates during merging
protected Set<String> seenDateFormats = Sets.newHashSet(); protected Set<String> seenDateFormats = new HashSet<>();
protected List<FormatDateTimeFormatter> dynamicDateTimeFormatters = new ArrayList<>(); protected List<FormatDateTimeFormatter> dynamicDateTimeFormatters = new ArrayList<>();
protected boolean dateDetection = Defaults.DATE_DETECTION; protected boolean dateDetection = Defaults.DATE_DETECTION;

View File

@ -51,11 +51,6 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
*/ */
public static final String NAME = "has_child"; public static final String NAME = "has_child";
/**
* The default cut off point only to evaluate parent documents that contain the matching parent id terms
* instead of evaluating all parent docs.
*/
public static final int DEFAULT_SHORT_CIRCUIT_CUTOFF = 8192;
/** /**
* The default maximum number of children that are required to match for the parent to be considered a match. * The default maximum number of children that are required to match for the parent to be considered a match.
*/ */
@ -64,12 +59,16 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
* The default minimum number of children that are required to match for the parent to be considered a match. * The default minimum number of children that are required to match for the parent to be considered a match.
*/ */
public static final int DEFAULT_MIN_CHILDREN = 0; public static final int DEFAULT_MIN_CHILDREN = 0;
/*
* The default score mode that is used to combine score coming from multiple parent documents.
*/
public static final ScoreMode DEFAULT_SCORE_MODE = ScoreMode.None;
private final QueryBuilder query; private final QueryBuilder query;
private final String type; private final String type;
private ScoreType scoreType = ScoreType.NONE; private ScoreMode scoreMode = DEFAULT_SCORE_MODE;
private int minChildren = DEFAULT_MIN_CHILDREN; private int minChildren = DEFAULT_MIN_CHILDREN;
@ -79,9 +78,9 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
static final HasChildQueryBuilder PROTOTYPE = new HasChildQueryBuilder("", EmptyQueryBuilder.PROTOTYPE); static final HasChildQueryBuilder PROTOTYPE = new HasChildQueryBuilder("", EmptyQueryBuilder.PROTOTYPE);
public HasChildQueryBuilder(String type, QueryBuilder query, Integer maxChildren, Integer minChildren, ScoreType scoreType, QueryInnerHits queryInnerHits) { public HasChildQueryBuilder(String type, QueryBuilder query, int maxChildren, int minChildren, ScoreMode scoreMode, QueryInnerHits queryInnerHits) {
this(type, query); this(type, query);
scoreType(scoreType); scoreMode(scoreMode);
this.maxChildren = maxChildren; this.maxChildren = maxChildren;
this.minChildren = minChildren; this.minChildren = minChildren;
this.queryInnerHits = queryInnerHits; this.queryInnerHits = queryInnerHits;
@ -101,11 +100,11 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
/** /**
* Defines how the scores from the matching child documents are mapped into the parent document. * Defines how the scores from the matching child documents are mapped into the parent document.
*/ */
public HasChildQueryBuilder scoreType(ScoreType scoreType) { public HasChildQueryBuilder scoreMode(ScoreMode scoreMode) {
if (scoreType == null) { if (scoreMode == null) {
throw new IllegalArgumentException("[" + NAME + "] requires 'score_type' field"); throw new IllegalArgumentException("[" + NAME + "] requires 'score_mode' field");
} }
this.scoreType = scoreType; this.scoreMode = scoreMode;
return this; return this;
} }
@ -163,8 +162,8 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
/** /**
* Returns how the scores from the matching child documents are mapped into the parent document. * Returns how the scores from the matching child documents are mapped into the parent document.
*/ */
public ScoreType scoreType() { public ScoreMode scoreMode() {
return scoreType; return scoreMode;
} }
/** /**
@ -187,7 +186,7 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
builder.field("query"); builder.field("query");
query.toXContent(builder, params); query.toXContent(builder, params);
builder.field("child_type", type); builder.field("child_type", type);
builder.field("score_type", scoreType.name().toLowerCase(Locale.ROOT)); builder.field("score_mode", scoreMode.name().toLowerCase(Locale.ROOT));
builder.field("min_children", minChildren); builder.field("min_children", minChildren);
builder.field("max_children", maxChildren); builder.field("max_children", maxChildren);
printBoostAndQueryName(builder); printBoostAndQueryName(builder);
@ -254,32 +253,7 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
if (maxChildren == 0) { if (maxChildren == 0) {
maxChildren = Integer.MAX_VALUE; maxChildren = Integer.MAX_VALUE;
} }
return new LateParsingQuery(parentDocMapper.typeFilter(), innerQuery, minChildren(), maxChildren, parentType, scoreTypeToScoreMode(scoreType), parentChildIndexFieldData); return new LateParsingQuery(parentDocMapper.typeFilter(), innerQuery, minChildren(), maxChildren, parentType, scoreMode, parentChildIndexFieldData);
}
static ScoreMode scoreTypeToScoreMode(ScoreType scoreType) {
ScoreMode scoreMode;
// TODO: move entirely over from ScoreType to org.apache.lucene.join.ScoreMode, when we drop the 1.x parent child code.
switch (scoreType) {
case NONE:
scoreMode = ScoreMode.None;
break;
case MIN:
scoreMode = ScoreMode.Min;
break;
case MAX:
scoreMode = ScoreMode.Max;
break;
case SUM:
scoreMode = ScoreMode.Total;
break;
case AVG:
scoreMode = ScoreMode.Avg;
break;
default:
throw new IllegalArgumentException("score type [" + scoreType + "] not supported");
}
return scoreMode;
} }
final static class LateParsingQuery extends Query { final static class LateParsingQuery extends Query {
@ -304,8 +278,12 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
@Override @Override
public Query rewrite(IndexReader reader) throws IOException { public Query rewrite(IndexReader reader) throws IOException {
IndexSearcher indexSearcher = new IndexSearcher(reader); if (getBoost() != 1.0F) {
return super.rewrite(reader);
}
String joinField = ParentFieldMapper.joinField(parentType); String joinField = ParentFieldMapper.joinField(parentType);
IndexSearcher indexSearcher = new IndexSearcher(reader);
indexSearcher.setQueryCache(null);
IndexParentChildFieldData indexParentChildFieldData = parentChildIndexFieldData.loadGlobal(indexSearcher.getIndexReader()); IndexParentChildFieldData indexParentChildFieldData = parentChildIndexFieldData.loadGlobal(indexSearcher.getIndexReader());
MultiDocValues.OrdinalMap ordinalMap = ParentChildIndexFieldData.getOrdinalMap(indexParentChildFieldData, parentType); MultiDocValues.OrdinalMap ordinalMap = ParentChildIndexFieldData.getOrdinalMap(indexParentChildFieldData, parentType);
return JoinUtil.createJoinQuery(joinField, innerQuery, toQuery, indexSearcher, scoreMode, ordinalMap, minChildren, maxChildren); return JoinUtil.createJoinQuery(joinField, innerQuery, toQuery, indexSearcher, scoreMode, ordinalMap, minChildren, maxChildren);
@ -361,7 +339,7 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
protected boolean doEquals(HasChildQueryBuilder that) { protected boolean doEquals(HasChildQueryBuilder that) {
return Objects.equals(query, that.query) return Objects.equals(query, that.query)
&& Objects.equals(type, that.type) && Objects.equals(type, that.type)
&& Objects.equals(scoreType, that.scoreType) && Objects.equals(scoreMode, that.scoreMode)
&& Objects.equals(minChildren, that.minChildren) && Objects.equals(minChildren, that.minChildren)
&& Objects.equals(maxChildren, that.maxChildren) && Objects.equals(maxChildren, that.maxChildren)
&& Objects.equals(queryInnerHits, that.queryInnerHits); && Objects.equals(queryInnerHits, that.queryInnerHits);
@ -369,7 +347,7 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
@Override @Override
protected int doHashCode() { protected int doHashCode() {
return Objects.hash(query, type, scoreType, minChildren, maxChildren, queryInnerHits); return Objects.hash(query, type, scoreMode, minChildren, maxChildren, queryInnerHits);
} }
protected HasChildQueryBuilder(StreamInput in) throws IOException { protected HasChildQueryBuilder(StreamInput in) throws IOException {
@ -377,7 +355,7 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
minChildren = in.readInt(); minChildren = in.readInt();
maxChildren = in.readInt(); maxChildren = in.readInt();
final int ordinal = in.readVInt(); final int ordinal = in.readVInt();
scoreType = ScoreType.values()[ordinal]; scoreMode = ScoreMode.values()[ordinal];
query = in.readQuery(); query = in.readQuery();
if (in.readBoolean()) { if (in.readBoolean()) {
queryInnerHits = new QueryInnerHits(in); queryInnerHits = new QueryInnerHits(in);
@ -394,7 +372,7 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQueryBuil
out.writeString(type); out.writeString(type);
out.writeInt(minChildren()); out.writeInt(minChildren());
out.writeInt(maxChildren()); out.writeInt(maxChildren());
out.writeVInt(scoreType.ordinal()); out.writeVInt(scoreMode.ordinal());
out.writeQuery(query); out.writeQuery(query);
if (queryInnerHits != null) { if (queryInnerHits != null) {
out.writeBoolean(true); out.writeBoolean(true);

View File

@ -19,6 +19,7 @@
package org.elasticsearch.index.query; package org.elasticsearch.index.query;
import org.apache.lucene.search.join.ScoreMode;
import org.elasticsearch.common.ParseField; import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.Strings; import org.elasticsearch.common.Strings;
import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentParser;
@ -43,7 +44,7 @@ public class HasChildQueryParser extends BaseQueryParser {
XContentParser parser = parseContext.parser(); XContentParser parser = parseContext.parser();
float boost = AbstractQueryBuilder.DEFAULT_BOOST; float boost = AbstractQueryBuilder.DEFAULT_BOOST;
String childType = null; String childType = null;
ScoreType scoreType = ScoreType.NONE; ScoreMode scoreMode = HasChildQueryBuilder.DEFAULT_SCORE_MODE;
int minChildren = HasChildQueryBuilder.DEFAULT_MIN_CHILDREN; int minChildren = HasChildQueryBuilder.DEFAULT_MIN_CHILDREN;
int maxChildren = HasChildQueryBuilder.DEFAULT_MAX_CHILDREN; int maxChildren = HasChildQueryBuilder.DEFAULT_MAX_CHILDREN;
String queryName = null; String queryName = null;
@ -67,10 +68,8 @@ public class HasChildQueryParser extends BaseQueryParser {
} else if (token.isValue()) { } else if (token.isValue()) {
if ("type".equals(currentFieldName) || "child_type".equals(currentFieldName) || "childType".equals(currentFieldName)) { if ("type".equals(currentFieldName) || "child_type".equals(currentFieldName) || "childType".equals(currentFieldName)) {
childType = parser.text(); childType = parser.text();
} else if ("score_type".equals(currentFieldName) || "scoreType".equals(currentFieldName)) {
scoreType = ScoreType.fromString(parser.text());
} else if ("score_mode".equals(currentFieldName) || "scoreMode".equals(currentFieldName)) { } else if ("score_mode".equals(currentFieldName) || "scoreMode".equals(currentFieldName)) {
scoreType = ScoreType.fromString(parser.text()); scoreMode = parseScoreMode(parser.text());
} else if ("boost".equals(currentFieldName)) { } else if ("boost".equals(currentFieldName)) {
boost = parser.floatValue(); boost = parser.floatValue();
} else if ("min_children".equals(currentFieldName) || "minChildren".equals(currentFieldName)) { } else if ("min_children".equals(currentFieldName) || "minChildren".equals(currentFieldName)) {
@ -84,12 +83,27 @@ public class HasChildQueryParser extends BaseQueryParser {
} }
} }
} }
HasChildQueryBuilder hasChildQueryBuilder = new HasChildQueryBuilder(childType, iqb, maxChildren, minChildren, scoreType, queryInnerHits); HasChildQueryBuilder hasChildQueryBuilder = new HasChildQueryBuilder(childType, iqb, maxChildren, minChildren, scoreMode, queryInnerHits);
hasChildQueryBuilder.queryName(queryName); hasChildQueryBuilder.queryName(queryName);
hasChildQueryBuilder.boost(boost); hasChildQueryBuilder.boost(boost);
return hasChildQueryBuilder; return hasChildQueryBuilder;
} }
public static ScoreMode parseScoreMode(String scoreModeString) {
if ("none".equals(scoreModeString)) {
return ScoreMode.None;
} else if ("min".equals(scoreModeString)) {
return ScoreMode.Min;
} else if ("max".equals(scoreModeString)) {
return ScoreMode.Max;
} else if ("avg".equals(scoreModeString)) {
return ScoreMode.Avg;
} else if ("total".equals(scoreModeString)) {
return ScoreMode.Total;
}
throw new IllegalArgumentException("No score mode for child query [" + scoreModeString + "] found");
}
@Override @Override
public HasChildQueryBuilder getBuilderPrototype() { public HasChildQueryBuilder getBuilderPrototype() {
return HasChildQueryBuilder.PROTOTYPE; return HasChildQueryBuilder.PROTOTYPE;

View File

@ -43,9 +43,10 @@ import java.util.Set;
public class HasParentQueryBuilder extends AbstractQueryBuilder<HasParentQueryBuilder> { public class HasParentQueryBuilder extends AbstractQueryBuilder<HasParentQueryBuilder> {
public static final String NAME = "has_parent"; public static final String NAME = "has_parent";
public static final boolean DEFAULT_SCORE = false;
private final QueryBuilder query; private final QueryBuilder query;
private final String type; private final String type;
private boolean score = false; private boolean score = DEFAULT_SCORE;
private QueryInnerHits innerHit; private QueryInnerHits innerHit;
/** /**

View File

@ -18,6 +18,7 @@
*/ */
package org.elasticsearch.index.query; package org.elasticsearch.index.query;
import org.elasticsearch.common.ParseField; import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.Strings; import org.elasticsearch.common.Strings;
import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentParser;
@ -25,12 +26,11 @@ import org.elasticsearch.index.query.support.QueryInnerHits;
import java.io.IOException; import java.io.IOException;
public class HasParentQueryParser extends BaseQueryParser { public class HasParentQueryParser extends BaseQueryParser {
private static final HasParentQueryBuilder PROTOTYPE = new HasParentQueryBuilder("", EmptyQueryBuilder.PROTOTYPE); private static final HasParentQueryBuilder PROTOTYPE = new HasParentQueryBuilder("", EmptyQueryBuilder.PROTOTYPE);
private static final ParseField QUERY_FIELD = new ParseField("query", "filter"); private static final ParseField QUERY_FIELD = new ParseField("query", "filter");
private static final ParseField SCORE_FIELD = new ParseField("score_type", "score_mode").withAllDeprecated("score"); private static final ParseField SCORE_FIELD = new ParseField("score_mode").withAllDeprecated("score");
private static final ParseField TYPE_FIELD = new ParseField("parent_type", "type"); private static final ParseField TYPE_FIELD = new ParseField("parent_type", "type");
@Override @Override
@ -44,7 +44,7 @@ public class HasParentQueryParser extends BaseQueryParser {
float boost = AbstractQueryBuilder.DEFAULT_BOOST; float boost = AbstractQueryBuilder.DEFAULT_BOOST;
String parentType = null; String parentType = null;
boolean score = false; boolean score = HasParentQueryBuilder.DEFAULT_SCORE;
String queryName = null; String queryName = null;
QueryInnerHits innerHits = null; QueryInnerHits innerHits = null;
@ -55,10 +55,6 @@ public class HasParentQueryParser extends BaseQueryParser {
if (token == XContentParser.Token.FIELD_NAME) { if (token == XContentParser.Token.FIELD_NAME) {
currentFieldName = parser.currentName(); currentFieldName = parser.currentName();
} else if (token == XContentParser.Token.START_OBJECT) { } else if (token == XContentParser.Token.START_OBJECT) {
// Usually, the query would be parsed here, but the child
// type may not have been extracted yet, so use the
// XContentStructure.<type> facade to parse if available,
// or delay parsing if not.
if (parseContext.parseFieldMatcher().match(currentFieldName, QUERY_FIELD)) { if (parseContext.parseFieldMatcher().match(currentFieldName, QUERY_FIELD)) {
iqb = parseContext.parseInnerQueryBuilder(); iqb = parseContext.parseInnerQueryBuilder();
} else if ("inner_hits".equals(currentFieldName)) { } else if ("inner_hits".equals(currentFieldName)) {
@ -70,12 +66,13 @@ public class HasParentQueryParser extends BaseQueryParser {
if (parseContext.parseFieldMatcher().match(currentFieldName, TYPE_FIELD)) { if (parseContext.parseFieldMatcher().match(currentFieldName, TYPE_FIELD)) {
parentType = parser.text(); parentType = parser.text();
} else if (parseContext.parseFieldMatcher().match(currentFieldName, SCORE_FIELD)) { } else if (parseContext.parseFieldMatcher().match(currentFieldName, SCORE_FIELD)) {
// deprecated we use a boolean now String scoreModeValue = parser.text();
String scoreTypeValue = parser.text(); if ("score".equals(scoreModeValue)) {
if ("score".equals(scoreTypeValue)) {
score = true; score = true;
} else if ("none".equals(scoreTypeValue)) { } else if ("none".equals(scoreModeValue)) {
score = false; score = false;
} else {
throw new QueryParsingException(parseContext, "[has_parent] query does not support [" + scoreModeValue + "] as an option for score_mode");
} }
} else if ("score".equals(currentFieldName)) { } else if ("score".equals(currentFieldName)) {
score = parser.booleanValue(); score = parser.booleanValue();

View File

@ -19,7 +19,6 @@
package org.elasticsearch.index.query; package org.elasticsearch.index.query;
import com.google.common.collect.Sets;
import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.index.Fields; import org.apache.lucene.index.Fields;
import org.apache.lucene.queries.TermsQuery; import org.apache.lucene.queries.TermsQuery;
@ -41,7 +40,13 @@ import org.elasticsearch.index.query.MoreLikeThisQueryBuilder.Item;
import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.internal.SearchContext;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import static org.elasticsearch.index.mapper.Uid.createUidAsBytes; import static org.elasticsearch.index.mapper.Uid.createUidAsBytes;
@ -178,7 +183,7 @@ public class MoreLikeThisQueryParser extends BaseQueryParserTemp {
likeItems.add(Item.parse(parser, parseContext.parseFieldMatcher(), new Item())); likeItems.add(Item.parse(parser, parseContext.parseFieldMatcher(), new Item()));
} }
} else if (parseContext.parseFieldMatcher().match(currentFieldName, Field.STOP_WORDS)) { } else if (parseContext.parseFieldMatcher().match(currentFieldName, Field.STOP_WORDS)) {
Set<String> stopWords = Sets.newHashSet(); Set<String> stopWords = new HashSet<>();
while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) {
stopWords.add(parser.text()); stopWords.add(parser.text());
} }

View File

@ -1,71 +0,0 @@
/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.elasticsearch.index.query;
/**
* Defines how scores from child documents are mapped into the parent document.
*/
public enum ScoreType {
/**
* Only the lowest score of all matching child documents is mapped into the
* parent.
*/
MIN,
/**
* Only the highest score of all matching child documents is mapped into the
* parent.
*/
MAX,
/**
* The average score based on all matching child documents are mapped into
* the parent.
*/
AVG,
/**
* The matching children scores is summed up and mapped into the parent.
*/
SUM,
/**
* Scores are not taken into account
*/
NONE;
public static ScoreType fromString(String type) {
if ("none".equals(type)) {
return NONE;
} else if ("min".equals(type)) {
return MIN;
} else if ("max".equals(type)) {
return MAX;
} else if ("avg".equals(type)) {
return AVG;
} else if ("sum".equals(type)) {
return SUM;
} else if ("total".equals(type)) { // This name is consistent with: ScoreMode.Total
return SUM;
}
throw new IllegalArgumentException("No score type for child query [" + type + "] found");
}
}

View File

@ -89,8 +89,7 @@ import java.util.Locale;
* <p> * <p>
* See {@link GaussDecayFunctionBuilder} and {@link GaussDecayFunctionParser} * See {@link GaussDecayFunctionBuilder} and {@link GaussDecayFunctionParser}
* for an example. The parser furthermore needs to be registered in the * for an example. The parser furthermore needs to be registered in the
* {@link org.elasticsearch.index.query.functionscore.FunctionScoreModule * {@link org.elasticsearch.search.SearchModule SearchModule}.
* FunctionScoreModule}.
* *
* **/ * **/

Some files were not shown because too many files have changed in this diff Show More