mirror of https://github.com/apache/lucene.git
SOLR-6615: use constants for 'id', '_route_', '_version_'
This commit is contained in:
parent
88c3c3c580
commit
eb587772dd
|
@ -58,6 +58,8 @@ import org.apache.zookeeper.data.Stat;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
public abstract class ElectionContext implements Closeable {
|
||||
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
||||
final String electionPath;
|
||||
|
@ -753,7 +755,7 @@ final class OverseerElectionContext extends ElectionContext {
|
|||
log.info("I am going to be the leader {}", id);
|
||||
final String id = leaderSeqPath
|
||||
.substring(leaderSeqPath.lastIndexOf("/") + 1);
|
||||
ZkNodeProps myProps = new ZkNodeProps("id", id);
|
||||
ZkNodeProps myProps = new ZkNodeProps(ID, id);
|
||||
|
||||
zkClient.makePath(leaderPath, Utils.toJSON(myProps),
|
||||
CreateMode.EPHEMERAL, true);
|
||||
|
|
|
@ -55,6 +55,8 @@ import org.apache.zookeeper.KeeperException;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* Cluster leader. Responsible for processing state updates, node assignments, creating/deleting
|
||||
* collections, shards, replicas and setting various properties.
|
||||
|
@ -292,7 +294,7 @@ public class Overseer implements Closeable {
|
|||
}
|
||||
try {
|
||||
Map m = (Map) Utils.fromJSON(data);
|
||||
String id = (String) m.get("id");
|
||||
String id = (String) m.get(ID);
|
||||
if(overseerCollectionConfigSetProcessor.getId().equals(id)){
|
||||
try {
|
||||
log.warn("I'm exiting, but I'm still the leader");
|
||||
|
@ -372,7 +374,7 @@ public class Overseer implements Closeable {
|
|||
case UPDATESHARDSTATE:
|
||||
return Collections.singletonList(new SliceMutator(getZkStateReader()).updateShardState(clusterState, message));
|
||||
case QUIT:
|
||||
if (myId.equals(message.get("id"))) {
|
||||
if (myId.equals(message.get(ID))) {
|
||||
log.info("Quit command received {} {}", message, LeaderElector.getNodeName(myId));
|
||||
overseerCollectionConfigSetProcessor.close();
|
||||
close();
|
||||
|
@ -396,7 +398,7 @@ public class Overseer implements Closeable {
|
|||
try {
|
||||
ZkNodeProps props = ZkNodeProps.load(zkClient.getData(
|
||||
OVERSEER_ELECT + "/leader", null, null, true));
|
||||
if (myId.equals(props.getStr("id"))) {
|
||||
if (myId.equals(props.getStr(ID))) {
|
||||
return LeaderStatus.YES;
|
||||
}
|
||||
} catch (KeeperException e) {
|
||||
|
|
|
@ -17,14 +17,13 @@
|
|||
package org.apache.solr.cloud;
|
||||
|
||||
import java.lang.invoke.MethodHandles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.solr.cloud.overseer.OverseerAction;
|
||||
import org.apache.solr.common.cloud.SolrZkClient;
|
||||
import org.apache.solr.common.cloud.ZkNodeProps;
|
||||
import org.apache.solr.common.cloud.ZkStateReader;
|
||||
import org.apache.solr.cloud.overseer.OverseerAction;
|
||||
import org.apache.solr.common.params.CoreAdminParams;
|
||||
import org.apache.solr.common.params.CoreAdminParams.CoreAdminAction;
|
||||
import org.apache.solr.common.params.ModifiableSolrParams;
|
||||
|
@ -37,6 +36,8 @@ import org.apache.zookeeper.data.Stat;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* Responsible for prioritization of Overseer nodes, for example with the
|
||||
* ADDROLE collection command.
|
||||
|
@ -90,7 +91,7 @@ public class OverseerNodePrioritizer {
|
|||
//now ask the current leader to QUIT , so that the designate can takeover
|
||||
Overseer.getStateUpdateQueue(zkStateReader.getZkClient()).offer(
|
||||
Utils.toJSON(new ZkNodeProps(Overseer.QUEUE_OPERATION, OverseerAction.QUIT.toLower(),
|
||||
"id", OverseerTaskProcessor.getLeaderId(zkStateReader.getZkClient()))));
|
||||
ID, OverseerTaskProcessor.getLeaderId(zkStateReader.getZkClient()))));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -34,8 +34,8 @@ import com.codahale.metrics.Timer;
|
|||
import com.google.common.collect.ImmutableSet;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.solr.client.solrj.SolrResponse;
|
||||
import org.apache.solr.cloud.OverseerTaskQueue.QueueEvent;
|
||||
import org.apache.solr.cloud.Overseer.LeaderStatus;
|
||||
import org.apache.solr.cloud.OverseerTaskQueue.QueueEvent;
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.cloud.SolrZkClient;
|
||||
import org.apache.solr.common.cloud.ZkNodeProps;
|
||||
|
@ -50,6 +50,7 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonAdminParams.ASYNC;
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* A generic processor run in the Overseer, used for handling items added
|
||||
|
@ -375,7 +376,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
|
|||
return null;
|
||||
}
|
||||
Map m = (Map) Utils.fromJSON(data);
|
||||
return (String) m.get("id");
|
||||
return (String) m.get(ID);
|
||||
}
|
||||
|
||||
protected LeaderStatus amILeader() {
|
||||
|
@ -385,7 +386,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
|
|||
try {
|
||||
ZkNodeProps props = ZkNodeProps.load(zkStateReader.getZkClient().getData(
|
||||
Overseer.OVERSEER_ELECT + "/leader", null, null, true));
|
||||
if (myId.equals(props.getStr("id"))) {
|
||||
if (myId.equals(props.getStr(ID))) {
|
||||
return LeaderStatus.YES;
|
||||
}
|
||||
} catch (KeeperException e) {
|
||||
|
|
|
@ -38,7 +38,6 @@ import javax.management.openmbean.SimpleType;
|
|||
import javax.management.remote.JMXConnectorServer;
|
||||
import javax.management.remote.JMXConnectorServerFactory;
|
||||
import javax.management.remote.JMXServiceURL;
|
||||
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
@ -58,6 +57,7 @@ import org.apache.solr.metrics.reporters.JmxObjectNameFactory;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
import static org.apache.solr.common.params.CommonParams.NAME;
|
||||
|
||||
/**
|
||||
|
@ -269,7 +269,7 @@ public class JmxMonitoredMap<K, V> extends
|
|||
Hashtable<String, String> map = new Hashtable<>();
|
||||
map.put("type", key);
|
||||
if (infoBean.getName() != null && !"".equals(infoBean.getName())) {
|
||||
map.put("id", infoBean.getName());
|
||||
map.put(ID, infoBean.getName());
|
||||
}
|
||||
return ObjectName.getInstance(jmxRootName, map);
|
||||
}
|
||||
|
|
|
@ -64,7 +64,9 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
import static org.apache.solr.common.params.CommonParams.JSON;
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION;
|
||||
import static org.apache.solr.common.util.Utils.makeMap;
|
||||
|
||||
public class BlobHandler extends RequestHandlerBase implements PluginInfoInitialized {
|
||||
|
@ -131,15 +133,15 @@ public class BlobHandler extends RequestHandlerBase implements PluginInfoInitial
|
|||
version++;
|
||||
String id = blobName + "/" + version;
|
||||
Map<String, Object> doc = makeMap(
|
||||
"id", id,
|
||||
ID, id,
|
||||
"md5", md5,
|
||||
"blobName", blobName,
|
||||
"version", version,
|
||||
VERSION, version,
|
||||
"timestamp", new Date(),
|
||||
"size", payload.limit(),
|
||||
"blob", payload);
|
||||
verifyWithRealtimeGet(blobName, version, req, doc);
|
||||
log.info(StrUtils.formatString("inserting new blob {0} ,size {1}, md5 {2}", doc.get("id"), String.valueOf(payload.limit()), md5));
|
||||
log.info(StrUtils.formatString("inserting new blob {0} ,size {1}, md5 {2}", doc.get(ID), String.valueOf(payload.limit()), md5));
|
||||
indexMap(req, rsp, doc);
|
||||
log.info(" Successfully Added and committed a blob with id {} and size {} ", id, payload.limit());
|
||||
|
||||
|
@ -212,7 +214,7 @@ public class BlobHandler extends RequestHandlerBase implements PluginInfoInitial
|
|||
for (; ; ) {
|
||||
SolrQueryResponse response = new SolrQueryResponse();
|
||||
String id = blobName + "/" + version;
|
||||
forward(req, "/get", new MapSolrParams(singletonMap("id", id)), response);
|
||||
forward(req, "/get", new MapSolrParams(singletonMap(ID, id)), response);
|
||||
if (response.getValues().get("doc") == null) {
|
||||
//ensure that the version does not exist
|
||||
return;
|
||||
|
@ -221,7 +223,7 @@ public class BlobHandler extends RequestHandlerBase implements PluginInfoInitial
|
|||
version++;
|
||||
doc.put("version", version);
|
||||
id = blobName + "/" + version;
|
||||
doc.put("id", id);
|
||||
doc.put(ID, id);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,11 @@
|
|||
*/
|
||||
package org.apache.solr.handler;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.solr.client.solrj.SolrServerException;
|
||||
import org.apache.solr.client.solrj.impl.CloudSolrClient;
|
||||
import org.apache.solr.client.solrj.request.UpdateRequest;
|
||||
|
@ -25,14 +30,10 @@ import org.apache.solr.common.SolrInputDocument;
|
|||
import org.apache.solr.update.CdcrUpdateLog;
|
||||
import org.apache.solr.update.UpdateLog;
|
||||
import org.apache.solr.update.processor.CdcrUpdateProcessor;
|
||||
import org.apache.solr.update.processor.DistributedUpdateProcessor;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.List;
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
|
||||
/**
|
||||
* The replication logic. Given a {@link org.apache.solr.handler.CdcrReplicatorState}, it reads all the new entries
|
||||
|
@ -183,14 +184,14 @@ public class CdcrReplicator implements Runnable {
|
|||
case UpdateLog.DELETE: {
|
||||
byte[] idBytes = (byte[]) entry.get(2);
|
||||
req.deleteById(new String(idBytes, Charset.forName("UTF-8")));
|
||||
req.setParam(DistributedUpdateProcessor.VERSION_FIELD, Long.toString(version));
|
||||
req.setParam(VERSION_FIELD, Long.toString(version));
|
||||
return req;
|
||||
}
|
||||
|
||||
case UpdateLog.DELETE_BY_QUERY: {
|
||||
String query = (String) entry.get(2);
|
||||
req.deleteByQuery(query);
|
||||
req.setParam(DistributedUpdateProcessor.VERSION_FIELD, Long.toString(version));
|
||||
req.setParam(VERSION_FIELD, Long.toString(version));
|
||||
return req;
|
||||
}
|
||||
|
||||
|
|
|
@ -80,6 +80,8 @@ import org.apache.solr.util.plugin.SolrCoreAware;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
public class StreamHandler extends RequestHandlerBase implements SolrCoreAware, PermissionNameProvider {
|
||||
|
||||
static SolrClientCache clientCache = new SolrClientCache();
|
||||
|
@ -284,7 +286,7 @@ public class StreamHandler extends RequestHandlerBase implements SolrCoreAware,
|
|||
private void handleAdmin(SolrQueryRequest req, SolrQueryResponse rsp, SolrParams params) {
|
||||
String action = params.get("action");
|
||||
if("stop".equalsIgnoreCase(action)) {
|
||||
String id = params.get("id");
|
||||
String id = params.get(ID);
|
||||
DaemonStream d = daemons.get(id);
|
||||
if(d != null) {
|
||||
d.close();
|
||||
|
@ -292,21 +294,23 @@ public class StreamHandler extends RequestHandlerBase implements SolrCoreAware,
|
|||
} else {
|
||||
rsp.add("result-set", new DaemonResponseStream("Deamon:" + id + " not found on " + coreName));
|
||||
}
|
||||
} else if("start".equalsIgnoreCase(action)) {
|
||||
String id = params.get("id");
|
||||
DaemonStream d = daemons.get(id);
|
||||
d.open();
|
||||
rsp.add("result-set", new DaemonResponseStream("Deamon:" + id + " started on " + coreName));
|
||||
} else if("list".equalsIgnoreCase(action)) {
|
||||
Collection<DaemonStream> vals = daemons.values();
|
||||
rsp.add("result-set", new DaemonCollectionStream(vals));
|
||||
} else if("kill".equalsIgnoreCase(action)) {
|
||||
String id = params.get("id");
|
||||
DaemonStream d = daemons.remove(id);
|
||||
if (d != null) {
|
||||
d.close();
|
||||
} else {
|
||||
if ("start".equalsIgnoreCase(action)) {
|
||||
String id = params.get(ID);
|
||||
DaemonStream d = daemons.get(id);
|
||||
d.open();
|
||||
rsp.add("result-set", new DaemonResponseStream("Deamon:" + id + " started on " + coreName));
|
||||
} else if ("list".equalsIgnoreCase(action)) {
|
||||
Collection<DaemonStream> vals = daemons.values();
|
||||
rsp.add("result-set", new DaemonCollectionStream(vals));
|
||||
} else if ("kill".equalsIgnoreCase(action)) {
|
||||
String id = params.get("id");
|
||||
DaemonStream d = daemons.remove(id);
|
||||
if (d != null) {
|
||||
d.close();
|
||||
}
|
||||
rsp.add("result-set", new DaemonResponseStream("Deamon:" + id + " killed on " + coreName));
|
||||
}
|
||||
rsp.add("result-set", new DaemonResponseStream("Deamon:" + id + " killed on " + coreName));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ public class LukeRequestHandler extends RequestHandlerBase
|
|||
public static final String NUMTERMS = "numTerms";
|
||||
public static final String INCLUDE_INDEX_FIELD_FLAGS = "includeIndexFieldFlags";
|
||||
public static final String DOC_ID = "docId";
|
||||
public static final String ID = "id";
|
||||
public static final String ID = CommonParams.ID;
|
||||
public static final int DEFAULT_COUNT = 10;
|
||||
|
||||
static final int HIST_ARRAY_SIZE = 33;
|
||||
|
|
|
@ -28,6 +28,7 @@ import org.apache.solr.handler.RequestHandlerBase;
|
|||
import org.apache.solr.request.SolrQueryRequest;
|
||||
import org.apache.solr.response.SolrQueryResponse;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
import static org.apache.solr.common.params.CommonParams.NAME;
|
||||
|
||||
/**
|
||||
|
@ -85,7 +86,7 @@ public class ThreadDumpHandler extends RequestHandlerBase
|
|||
SimpleOrderedMap<Object> info = new SimpleOrderedMap<>();
|
||||
long tid = ti.getThreadId();
|
||||
|
||||
info.add( "id", tid );
|
||||
info.add( ID, tid );
|
||||
info.add(NAME, ti.getThreadName());
|
||||
info.add( "state", ti.getThreadState().toString() );
|
||||
|
||||
|
@ -107,7 +108,7 @@ public class ThreadDumpHandler extends RequestHandlerBase
|
|||
if (ti.getLockOwnerName() != null) {
|
||||
SimpleOrderedMap<Object> owner = new SimpleOrderedMap<>();
|
||||
owner.add(NAME, ti.getLockOwnerName());
|
||||
owner.add( "id", ti.getLockOwnerId() );
|
||||
owner.add( ID, ti.getLockOwnerId() );
|
||||
}
|
||||
|
||||
// Add the stack trace
|
||||
|
|
|
@ -92,6 +92,8 @@ import org.w3c.dom.Node;
|
|||
import org.w3c.dom.NodeList;
|
||||
import org.xml.sax.InputSource;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* A component to elevate some documents to the top of the result set.
|
||||
*
|
||||
|
@ -308,7 +310,7 @@ public class QueryElevationComponent extends SearchComponent implements SolrCore
|
|||
ArrayList<String> exclude = new ArrayList<>();
|
||||
for (int j = 0; j < children.getLength(); j++) {
|
||||
Node child = children.item(j);
|
||||
String id = DOMUtil.getAttr(child, "id", "missing 'id'");
|
||||
String id = DOMUtil.getAttr(child, ID, "missing 'id'");
|
||||
String e = DOMUtil.getAttr(child, EXCLUDE, null);
|
||||
if (e != null) {
|
||||
if (Boolean.valueOf(e)) {
|
||||
|
|
|
@ -78,11 +78,13 @@ import org.apache.solr.update.DocumentBuilder;
|
|||
import org.apache.solr.update.IndexFingerprint;
|
||||
import org.apache.solr.update.PeerSync;
|
||||
import org.apache.solr.update.UpdateLog;
|
||||
import org.apache.solr.update.processor.DistributedUpdateProcessor;
|
||||
import org.apache.solr.util.RefCounted;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
|
||||
public class RealTimeGetComponent extends SearchComponent
|
||||
{
|
||||
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
||||
|
@ -473,8 +475,8 @@ public class RealTimeGetComponent extends SearchComponent
|
|||
doc = toSolrDoc(luceneDocument, core.getLatestSchema());
|
||||
searcher.decorateDocValueFields(doc, docid, decorateFields);
|
||||
|
||||
long docVersion = (long) doc.getFirstValue(DistributedUpdateProcessor.VERSION_FIELD);
|
||||
Object partialVersionObj = partialDoc.getFieldValue(DistributedUpdateProcessor.VERSION_FIELD);
|
||||
long docVersion = (long) doc.getFirstValue(VERSION_FIELD);
|
||||
Object partialVersionObj = partialDoc.getFieldValue(VERSION_FIELD);
|
||||
long partialDocVersion = partialVersionObj instanceof Field? ((Field) partialVersionObj).numericValue().longValue():
|
||||
partialVersionObj instanceof Number? ((Number) partialVersionObj).longValue(): Long.parseLong(partialVersionObj.toString());
|
||||
if (docVersion > partialDocVersion) {
|
||||
|
@ -621,8 +623,8 @@ public class RealTimeGetComponent extends SearchComponent
|
|||
}
|
||||
|
||||
if (versionReturned != null) {
|
||||
if (sid.containsKey(DistributedUpdateProcessor.VERSION_FIELD)) {
|
||||
versionReturned.set((long)sid.getFieldValue(DistributedUpdateProcessor.VERSION_FIELD));
|
||||
if (sid.containsKey(VERSION_FIELD)) {
|
||||
versionReturned.set((long)sid.getFieldValue(VERSION_FIELD));
|
||||
}
|
||||
}
|
||||
return sid;
|
||||
|
@ -841,7 +843,7 @@ public class RealTimeGetComponent extends SearchComponent
|
|||
sreq.params.set("distrib",false);
|
||||
|
||||
sreq.params.remove(ShardParams.SHARDS);
|
||||
sreq.params.remove("id");
|
||||
sreq.params.remove(ID);
|
||||
sreq.params.remove("ids");
|
||||
sreq.params.set("ids", StrUtils.join(ids, ','));
|
||||
|
||||
|
@ -1146,7 +1148,7 @@ public class RealTimeGetComponent extends SearchComponent
|
|||
return (IdsRequsted)req.getContext().get(contextKey);
|
||||
}
|
||||
final SolrParams params = req.getParams();
|
||||
final String id[] = params.getParams("id");
|
||||
final String id[] = params.getParams(ID);
|
||||
final String ids[] = params.getParams("ids");
|
||||
|
||||
if (id == null && ids == null) {
|
||||
|
|
|
@ -20,6 +20,7 @@ import org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec;
|
|||
import org.apache.solr.client.solrj.request.UpdateRequest;
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.common.params.ShardParams;
|
||||
import org.apache.solr.common.params.SolrParams;
|
||||
import org.apache.solr.common.params.UpdateParams;
|
||||
import org.apache.solr.common.util.ContentStream;
|
||||
|
@ -140,7 +141,7 @@ public class JavabinLoader extends ContentStreamLoader {
|
|||
}
|
||||
}
|
||||
if (map != null) {
|
||||
String route = (String) map.get(UpdateRequest.ROUTE);
|
||||
String route = (String) map.get(ShardParams._ROUTE_);
|
||||
if (route != null) {
|
||||
delcmd.setRoute(route);
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.solr.handler.loader;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.StringReader;
|
||||
|
@ -57,8 +58,11 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static java.util.stream.Collectors.toList;
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
import static org.apache.solr.common.params.CommonParams.JSON;
|
||||
import static org.apache.solr.common.params.CommonParams.PATH;
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
import static org.apache.solr.common.params.ShardParams._ROUTE_;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -364,15 +368,15 @@ public class JsonLoader extends ContentStreamLoader {
|
|||
if (ev == JSONParser.STRING) {
|
||||
String key = parser.getString();
|
||||
if (parser.wasKey()) {
|
||||
if ("id".equals(key)) {
|
||||
if (ID.equals(key)) {
|
||||
cmd.setId(getString(parser.nextEvent()));
|
||||
} else if ("query".equals(key)) {
|
||||
cmd.setQuery(parser.getString());
|
||||
} else if ("commitWithin".equals(key)) {
|
||||
cmd.commitWithin = (int) parser.getLong();
|
||||
} else if ("_version_".equals(key)) {
|
||||
} else if (VERSION_FIELD.equals(key)) {
|
||||
cmd.setVersion(parser.getLong());
|
||||
} else if ("_route_".equals(key)) {
|
||||
} else if (_ROUTE_.equals(key)) {
|
||||
cmd.setRoute(parser.getString());
|
||||
} else {
|
||||
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Unknown key '" + key + "' at [" + parser.getPosition() + "]");
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.solr.handler.loader;
|
||||
|
||||
import javax.xml.parsers.SAXParserFactory;
|
||||
import javax.xml.stream.FactoryConfigurationError;
|
||||
import javax.xml.stream.XMLInputFactory;
|
||||
|
@ -39,11 +40,12 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.solr.client.solrj.request.UpdateRequest;
|
||||
import org.apache.solr.common.EmptyEntityResolver;
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.common.params.CommonParams;
|
||||
import org.apache.solr.common.params.ModifiableSolrParams;
|
||||
import org.apache.solr.common.params.ShardParams;
|
||||
import org.apache.solr.common.params.SolrParams;
|
||||
import org.apache.solr.common.params.UpdateParams;
|
||||
import org.apache.solr.common.util.ContentStream;
|
||||
|
@ -60,13 +62,13 @@ import org.apache.solr.update.CommitUpdateCommand;
|
|||
import org.apache.solr.update.DeleteUpdateCommand;
|
||||
import org.apache.solr.update.RollbackUpdateCommand;
|
||||
import org.apache.solr.update.processor.UpdateRequestProcessor;
|
||||
import org.apache.solr.common.EmptyEntityResolver;
|
||||
import org.apache.solr.util.xslt.TransformerProvider;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.XMLReader;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
import static org.apache.solr.common.params.CommonParams.NAME;
|
||||
|
||||
|
||||
|
@ -318,7 +320,7 @@ public class XMLLoader extends ContentStreamLoader {
|
|||
switch (event) {
|
||||
case XMLStreamConstants.START_ELEMENT:
|
||||
String mode = parser.getLocalName();
|
||||
if (!("id".equals(mode) || "query".equals(mode))) {
|
||||
if (!(ID.equals(mode) || "query".equals(mode))) {
|
||||
String msg = "XML element <delete> has invalid XML child element: " + mode;
|
||||
log.warn(msg);
|
||||
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
|
||||
|
@ -326,14 +328,14 @@ public class XMLLoader extends ContentStreamLoader {
|
|||
}
|
||||
text.setLength(0);
|
||||
|
||||
if ("id".equals(mode)) {
|
||||
if (ID.equals(mode)) {
|
||||
for (int i = 0; i < parser.getAttributeCount(); i++) {
|
||||
String attrName = parser.getAttributeLocalName(i);
|
||||
String attrVal = parser.getAttributeValue(i);
|
||||
if (UpdateRequestHandler.VERSION.equals(attrName)) {
|
||||
deleteCmd.setVersion(Long.parseLong(attrVal));
|
||||
}
|
||||
if (UpdateRequest.ROUTE.equals(attrName)) {
|
||||
if (ShardParams._ROUTE_.equals(attrName)) {
|
||||
deleteCmd.setRoute(attrVal);
|
||||
}
|
||||
}
|
||||
|
@ -342,7 +344,7 @@ public class XMLLoader extends ContentStreamLoader {
|
|||
|
||||
case XMLStreamConstants.END_ELEMENT:
|
||||
String currTag = parser.getLocalName();
|
||||
if ("id".equals(currTag)) {
|
||||
if (ID.equals(currTag)) {
|
||||
deleteCmd.setId(text.toString());
|
||||
} else if ("query".equals(currTag)) {
|
||||
deleteCmd.setQuery(text.toString());
|
||||
|
|
|
@ -61,7 +61,6 @@ import java.util.stream.Collectors;
|
|||
*/
|
||||
class SolrTable extends AbstractQueryableTable implements TranslatableTable {
|
||||
private static final String DEFAULT_QUERY = "*:*";
|
||||
private static final String DEFAULT_VERSION_FIELD = "_version_";
|
||||
|
||||
private final String collection;
|
||||
private final SolrSchema schema;
|
||||
|
|
|
@ -41,6 +41,8 @@ import org.apache.zookeeper.KeeperException;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* This reporter sends selected metrics from local registries to {@link Overseer}.
|
||||
* <p>The following configuration properties are supported:</p>
|
||||
|
@ -253,7 +255,7 @@ public class SolrClusterReporter extends SolrMetricReporter {
|
|||
if (props == null) {
|
||||
return lastKnownUrl;
|
||||
}
|
||||
String oid = props.getStr("id");
|
||||
String oid = props.getStr(ID);
|
||||
if (oid == null) {
|
||||
return lastKnownUrl;
|
||||
}
|
||||
|
|
|
@ -47,6 +47,8 @@ import org.apache.solr.search.grouping.distributed.command.TopGroupsFieldCommand
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* Implementation for transforming {@link TopGroups} and {@link TopDocs} into a {@link NamedList} structure and
|
||||
* visa versa.
|
||||
|
@ -158,7 +160,7 @@ public class TopGroupsResultTransformer implements ShardResultTransformer<List<C
|
|||
ScoreDoc[] scoreDocs = new ScoreDoc[documents.size()];
|
||||
int j = 0;
|
||||
for (NamedList<Object> document : documents) {
|
||||
Object docId = document.get("id");
|
||||
Object docId = document.get(ID);
|
||||
if (docId != null) {
|
||||
docId = docId.toString();
|
||||
} else {
|
||||
|
@ -208,7 +210,7 @@ public class TopGroupsResultTransformer implements ShardResultTransformer<List<C
|
|||
documents.add(document);
|
||||
|
||||
Document doc = retrieveDocument(uniqueField, searchGroup.scoreDocs[i].doc);
|
||||
document.add("id", uniqueField.getType().toExternal(doc.getField(uniqueField.getName())));
|
||||
document.add(ID, uniqueField.getType().toExternal(doc.getField(uniqueField.getName())));
|
||||
if (!Float.isNaN(searchGroup.scoreDocs[i].score)) {
|
||||
document.add("score", searchGroup.scoreDocs[i].score);
|
||||
}
|
||||
|
@ -259,7 +261,7 @@ public class TopGroupsResultTransformer implements ShardResultTransformer<List<C
|
|||
documents.add(document);
|
||||
|
||||
Document doc = retrieveDocument(uniqueField, scoreDoc.doc);
|
||||
document.add("id", uniqueField.getType().toExternal(doc.getField(uniqueField.getName())));
|
||||
document.add(ID, uniqueField.getType().toExternal(doc.getField(uniqueField.getName())));
|
||||
if (!Float.isNaN(scoreDoc.score)) {
|
||||
document.add("score", scoreDoc.score);
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.solr.search.mlt;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
@ -47,6 +48,8 @@ import org.apache.solr.search.QParser;
|
|||
import org.apache.solr.search.QueryParsing;
|
||||
import org.apache.solr.util.SolrPluginUtils;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
public class CloudMLTQParser extends QParser {
|
||||
// Pattern is thread safe -- TODO? share this with general 'fl' param
|
||||
private static final Pattern splitList = Pattern.compile(",| ");
|
||||
|
@ -178,7 +181,7 @@ public class CloudMLTQParser extends QParser {
|
|||
SolrCore core = req.getCore();
|
||||
SolrQueryResponse rsp = new SolrQueryResponse();
|
||||
ModifiableSolrParams params = new ModifiableSolrParams();
|
||||
params.add("id", id);
|
||||
params.add(ID, id);
|
||||
|
||||
SolrQueryRequestBase request = new SolrQueryRequestBase(core, params) {
|
||||
};
|
||||
|
|
|
@ -41,6 +41,8 @@ import org.apache.solr.search.SolrIndexSearcher;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
public class SpellCheckCollator {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
||||
private int maxCollations = 1;
|
||||
|
@ -116,7 +118,7 @@ public class SpellCheckCollator {
|
|||
params.remove(CommonParams.START);
|
||||
params.set(CommonParams.ROWS, "" + docCollectionLimit);
|
||||
// we don't want any stored fields
|
||||
params.set(CommonParams.FL, "id");
|
||||
params.set(CommonParams.FL, ID);
|
||||
// we'll sort by doc id to ensure no scoring is done.
|
||||
params.set(CommonParams.SORT, "_docid_ asc");
|
||||
// CursorMark does not like _docid_ sorting, and we don't need it.
|
||||
|
|
|
@ -27,6 +27,7 @@ import org.apache.lucene.util.BytesRefBuilder;
|
|||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.common.SolrInputField;
|
||||
import org.apache.solr.common.params.CommonParams;
|
||||
import org.apache.solr.request.SolrQueryRequest;
|
||||
import org.apache.solr.schema.IndexSchema;
|
||||
import org.apache.solr.schema.SchemaField;
|
||||
|
@ -191,7 +192,7 @@ public class AddUpdateCommand extends UpdateCommand implements Iterable<Document
|
|||
|
||||
for (SolrInputDocument sdoc : all) {
|
||||
sdoc.setField("_root_", idField); // should this be a string or the same type as the ID?
|
||||
if(isVersion) sdoc.setField(VersionInfo.VERSION_FIELD, version);
|
||||
if(isVersion) sdoc.setField(CommonParams.VERSION_FIELD, version);
|
||||
// TODO: if possible concurrent modification exception (if SolrInputDocument not cloned and is being forwarded to replicas)
|
||||
// then we could add this field to the generated lucene document instead.
|
||||
}
|
||||
|
|
|
@ -60,6 +60,7 @@ import org.apache.solr.update.processor.UpdateRequestProcessorChain;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
import static org.apache.solr.update.processor.DistributedUpdateProcessor.DistribPhase.FROMLEADER;
|
||||
import static org.apache.solr.update.processor.DistributingUpdateProcessorFactory.DISTRIB_UPDATE_PARAM;
|
||||
|
||||
|
@ -799,7 +800,7 @@ public class PeerSync implements SolrMetricProducer {
|
|||
cmd.setVersion(version);
|
||||
cmd.setFlags(UpdateCommand.PEER_SYNC | UpdateCommand.IGNORE_AUTOCOMMIT);
|
||||
if (debug) {
|
||||
log.debug(msg() + "add " + cmd + " id " + sdoc.getField("id"));
|
||||
log.debug(msg() + "add " + cmd + " id " + sdoc.getField(ID));
|
||||
}
|
||||
proc.processAdd(cmd);
|
||||
break;
|
||||
|
|
|
@ -41,12 +41,12 @@ import org.apache.solr.util.RefCounted;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
|
||||
public class VersionInfo {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
||||
|
||||
public static final String VERSION_FIELD="_version_";
|
||||
|
||||
private final UpdateLog ulog;
|
||||
private final VersionBucket[] buckets;
|
||||
private SchemaField versionField;
|
||||
|
@ -54,7 +54,7 @@ public class VersionInfo {
|
|||
final ReadWriteLock lock = new ReentrantReadWriteLock(true);
|
||||
|
||||
/**
|
||||
* Gets and returns the {@link #VERSION_FIELD} from the specified
|
||||
* Gets and returns the {@link org.apache.solr.common.params.CommonParams#VERSION_FIELD} from the specified
|
||||
* schema, after verifying that it is indexed, stored, and single-valued.
|
||||
* If any of these pre-conditions are not met, it throws a SolrException
|
||||
* with a user suitable message indicating the problem.
|
||||
|
|
|
@ -35,6 +35,7 @@ import org.apache.solr.common.SolrException;
|
|||
import org.apache.solr.common.SolrException.ErrorCode;
|
||||
import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.common.SolrInputField;
|
||||
import org.apache.solr.common.params.CommonParams;
|
||||
import org.apache.solr.core.SolrCore;
|
||||
import org.apache.solr.handler.component.RealTimeGetComponent;
|
||||
import org.apache.solr.request.SolrQueryRequest;
|
||||
|
@ -47,6 +48,8 @@ import org.apache.solr.util.RefCounted;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* @lucene.experimental
|
||||
*/
|
||||
|
@ -160,7 +163,7 @@ public class AtomicUpdateDocumentMerger {
|
|||
final Set<String> candidateFields = new HashSet<>();
|
||||
|
||||
// if _version_ field is not supported for in-place update, bail out early
|
||||
SchemaField versionField = schema.getFieldOrNull(DistributedUpdateProcessor.VERSION_FIELD);
|
||||
SchemaField versionField = schema.getFieldOrNull(CommonParams.VERSION_FIELD);
|
||||
if (versionField == null || !isSupportedFieldForInPlaceUpdate(versionField)) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
|
@ -169,7 +172,7 @@ public class AtomicUpdateDocumentMerger {
|
|||
// and bail out early if anything is obviously not a valid in-place update
|
||||
for (String fieldName : sdoc.getFieldNames()) {
|
||||
if (fieldName.equals(uniqueKeyFieldName)
|
||||
|| fieldName.equals(DistributedUpdateProcessor.VERSION_FIELD)) {
|
||||
|| fieldName.equals(CommonParams.VERSION_FIELD)) {
|
||||
continue;
|
||||
}
|
||||
Object fieldValue = sdoc.getField(fieldName).getValue();
|
||||
|
@ -245,7 +248,7 @@ public class AtomicUpdateDocumentMerger {
|
|||
SolrInputDocument inputDoc = cmd.getSolrInputDocument();
|
||||
BytesRef idBytes = cmd.getIndexedId();
|
||||
|
||||
updatedFields.add(DistributedUpdateProcessor.VERSION_FIELD); // add the version field so that it is fetched too
|
||||
updatedFields.add(CommonParams.VERSION_FIELD); // add the version field so that it is fetched too
|
||||
SolrInputDocument oldDocument = RealTimeGetComponent.getInputDocument
|
||||
(cmd.getReq().getCore(), idBytes,
|
||||
null, // don't want the version to be returned
|
||||
|
@ -258,11 +261,11 @@ public class AtomicUpdateDocumentMerger {
|
|||
return false;
|
||||
}
|
||||
|
||||
if (oldDocument.containsKey(DistributedUpdateProcessor.VERSION_FIELD) == false) {
|
||||
if (oldDocument.containsKey(CommonParams.VERSION_FIELD) == false) {
|
||||
throw new SolrException (ErrorCode.INVALID_STATE, "There is no _version_ in previous document. id=" +
|
||||
cmd.getPrintableId());
|
||||
}
|
||||
Long oldVersion = (Long) oldDocument.remove(DistributedUpdateProcessor.VERSION_FIELD).getValue();
|
||||
Long oldVersion = (Long) oldDocument.remove(CommonParams.VERSION_FIELD).getValue();
|
||||
|
||||
// If the oldDocument contains any other field apart from updatedFields (or id/version field), then remove them.
|
||||
// This can happen, despite requesting for these fields in the call to RTGC.getInputDocument, if the document was
|
||||
|
@ -270,7 +273,7 @@ public class AtomicUpdateDocumentMerger {
|
|||
if (updatedFields != null) {
|
||||
Collection<String> names = new HashSet<String>(oldDocument.getFieldNames());
|
||||
for (String fieldName: names) {
|
||||
if (fieldName.equals(DistributedUpdateProcessor.VERSION_FIELD)==false && fieldName.equals("id")==false && updatedFields.contains(fieldName)==false) {
|
||||
if (fieldName.equals(CommonParams.VERSION_FIELD)==false && fieldName.equals(ID)==false && updatedFields.contains(fieldName)==false) {
|
||||
oldDocument.remove(fieldName);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ package org.apache.solr.update.processor;
|
|||
import java.io.IOException;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
|
||||
import org.apache.solr.common.params.CommonParams;
|
||||
import org.apache.solr.common.params.ModifiableSolrParams;
|
||||
import org.apache.solr.common.params.SolrParams;
|
||||
import org.apache.solr.request.SolrQueryRequest;
|
||||
|
@ -101,7 +102,7 @@ public class CdcrUpdateProcessor extends DistributedUpdateProcessor {
|
|||
// } else {
|
||||
// log.info("+++ cdcr.update version present, params are: " + params);
|
||||
// }
|
||||
result.set(DistributedUpdateProcessor.VERSION_FIELD, params.get(DistributedUpdateProcessor.VERSION_FIELD));
|
||||
result.set(CommonParams.VERSION_FIELD, params.get(CommonParams.VERSION_FIELD));
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
|
@ -64,6 +64,7 @@ import org.apache.solr.common.cloud.SolrZkClient;
|
|||
import org.apache.solr.common.cloud.ZkCoreNodeProps;
|
||||
import org.apache.solr.common.cloud.ZkStateReader;
|
||||
import org.apache.solr.common.cloud.ZooKeeperException;
|
||||
import org.apache.solr.common.params.CommonParams;
|
||||
import org.apache.solr.common.params.ModifiableSolrParams;
|
||||
import org.apache.solr.common.params.ShardParams;
|
||||
import org.apache.solr.common.params.SolrParams;
|
||||
|
@ -240,8 +241,6 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
private final UpdateRequestProcessor next;
|
||||
private final AtomicUpdateDocumentMerger docMerger;
|
||||
|
||||
public static final String VERSION_FIELD = "_version_";
|
||||
|
||||
private final UpdateHandler updateHandler;
|
||||
private final UpdateLog ulog;
|
||||
private final VersionInfo vinfo;
|
||||
|
@ -310,7 +309,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
|
||||
// this should always be used - see filterParams
|
||||
DistributedUpdateProcessorFactory.addParamToDistributedRequestWhitelist
|
||||
(this.req, UpdateParams.UPDATE_CHAIN, TEST_DISTRIB_SKIP_SERVERS, VERSION_FIELD);
|
||||
(this.req, UpdateParams.UPDATE_CHAIN, TEST_DISTRIB_SKIP_SERVERS, CommonParams.VERSION_FIELD);
|
||||
|
||||
CoreDescriptor coreDesc = req.getCore().getCoreDescriptor();
|
||||
|
||||
|
@ -1031,13 +1030,13 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
long versionOnUpdate = cmd.getVersion();
|
||||
|
||||
if (versionOnUpdate == 0) {
|
||||
SolrInputField versionField = cmd.getSolrInputDocument().getField(VersionInfo.VERSION_FIELD);
|
||||
SolrInputField versionField = cmd.getSolrInputDocument().getField(CommonParams.VERSION_FIELD);
|
||||
if (versionField != null) {
|
||||
Object o = versionField.getValue();
|
||||
versionOnUpdate = o instanceof Number ? ((Number) o).longValue() : Long.parseLong(o.toString());
|
||||
} else {
|
||||
// Find the version
|
||||
String versionOnUpdateS = req.getParams().get(VERSION_FIELD);
|
||||
String versionOnUpdateS = req.getParams().get(CommonParams.VERSION_FIELD);
|
||||
versionOnUpdate = versionOnUpdateS == null ? 0 : Long.parseLong(versionOnUpdateS);
|
||||
}
|
||||
}
|
||||
|
@ -1084,7 +1083,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
// forwarded from a collection but we are not buffering so strip original version and apply our own
|
||||
// see SOLR-5308
|
||||
log.info("Removing version field from doc: " + cmd.getPrintableId());
|
||||
cmd.solrDoc.remove(VERSION_FIELD);
|
||||
cmd.solrDoc.remove(CommonParams.VERSION_FIELD);
|
||||
versionOnUpdate = 0;
|
||||
}
|
||||
|
||||
|
@ -1114,7 +1113,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
|
||||
long version = vinfo.getNewClock();
|
||||
cmd.setVersion(version);
|
||||
cmd.getSolrInputDocument().setField(VersionInfo.VERSION_FIELD, version);
|
||||
cmd.getSolrInputDocument().setField(CommonParams.VERSION_FIELD, version);
|
||||
bucket.updateHighest(version);
|
||||
} else {
|
||||
// The leader forwarded us this update.
|
||||
|
@ -1152,7 +1151,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
// Make this update to become a non-inplace update containing the full document obtained from the leader
|
||||
cmd.solrDoc = ((AddUpdateCommand)fetchedFromLeader).solrDoc;
|
||||
cmd.prevVersion = -1;
|
||||
cmd.setVersion((long)cmd.solrDoc.getFieldValue(VERSION_FIELD));
|
||||
cmd.setVersion((long)cmd.solrDoc.getFieldValue(CommonParams.VERSION_FIELD));
|
||||
assert cmd.isInPlaceUpdate() == false;
|
||||
}
|
||||
} else {
|
||||
|
@ -1354,7 +1353,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
|
||||
AddUpdateCommand cmd = new AddUpdateCommand(req);
|
||||
cmd.solrDoc = leaderDoc;
|
||||
cmd.setVersion((long)leaderDoc.getFieldValue(VERSION_FIELD));
|
||||
cmd.setVersion((long)leaderDoc.getFieldValue(CommonParams.VERSION_FIELD));
|
||||
return cmd;
|
||||
}
|
||||
|
||||
|
@ -1386,7 +1385,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
throw new SolrException(ErrorCode.CONFLICT, "Document not found for update. id=" + cmd.getPrintableId());
|
||||
}
|
||||
} else {
|
||||
oldDoc.remove(VERSION_FIELD);
|
||||
oldDoc.remove(CommonParams.VERSION_FIELD);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1598,7 +1597,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
if (zkEnabled) {
|
||||
// forward to all replicas
|
||||
ModifiableSolrParams params = new ModifiableSolrParams(filterParams(req.getParams()));
|
||||
params.set(VERSION_FIELD, Long.toString(cmd.getVersion()));
|
||||
params.set(CommonParams.VERSION_FIELD, Long.toString(cmd.getVersion()));
|
||||
params.set(DISTRIB_UPDATE_PARAM, DistribPhase.FROMLEADER.toString());
|
||||
params.set(DISTRIB_FROM, ZkCoreNodeProps.getCoreUrl(
|
||||
zkController.getBaseUrl(), req.getCore().getName()));
|
||||
|
@ -1667,7 +1666,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
// Find the version
|
||||
long versionOnUpdate = cmd.getVersion();
|
||||
if (versionOnUpdate == 0) {
|
||||
String versionOnUpdateS = req.getParams().get(VERSION_FIELD);
|
||||
String versionOnUpdateS = req.getParams().get(CommonParams.VERSION_FIELD);
|
||||
versionOnUpdate = versionOnUpdateS == null ? 0 : Long.parseLong(versionOnUpdateS);
|
||||
}
|
||||
versionOnUpdate = Math.abs(versionOnUpdate); // normalize to positive version
|
||||
|
@ -1776,7 +1775,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
|
|||
// Find the version
|
||||
long versionOnUpdate = cmd.getVersion();
|
||||
if (versionOnUpdate == 0) {
|
||||
String versionOnUpdateS = req.getParams().get(VERSION_FIELD);
|
||||
String versionOnUpdateS = req.getParams().get(CommonParams.VERSION_FIELD);
|
||||
versionOnUpdate = versionOnUpdateS == null ? 0 : Long.parseLong(versionOnUpdateS);
|
||||
}
|
||||
long signedVersionOnUpdate = versionOnUpdate;
|
||||
|
|
|
@ -22,6 +22,7 @@ import org.apache.lucene.util.BytesRef;
|
|||
import org.apache.lucene.util.BytesRefBuilder;
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.common.params.CommonParams;
|
||||
import org.apache.solr.common.util.NamedList;
|
||||
import org.apache.solr.core.SolrCore;
|
||||
import org.apache.solr.handler.component.RealTimeGetComponent;
|
||||
|
@ -33,7 +34,6 @@ import org.apache.solr.search.SolrIndexSearcher;
|
|||
import org.apache.solr.update.AddUpdateCommand;
|
||||
import org.apache.solr.update.DeleteUpdateCommand;
|
||||
import org.apache.solr.update.UpdateCommand;
|
||||
import org.apache.solr.update.VersionInfo;
|
||||
import org.apache.solr.util.RefCounted;
|
||||
import org.apache.solr.util.plugin.SolrCoreAware;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -202,7 +202,7 @@ public class DocBasedVersionConstraintsProcessorFactory extends UpdateRequestPro
|
|||
this.core = req.getCore();
|
||||
this.versionFieldName = versionField;
|
||||
this.userVersionField = core.getLatestSchema().getField(versionField);
|
||||
this.solrVersionField = core.getLatestSchema().getField(VersionInfo.VERSION_FIELD);
|
||||
this.solrVersionField = core.getLatestSchema().getField(CommonParams.VERSION_FIELD);
|
||||
this.useFieldCache = useFieldCache;
|
||||
|
||||
for (UpdateRequestProcessor proc = next ;proc != null; proc = proc.next) {
|
||||
|
|
|
@ -23,9 +23,9 @@ import org.apache.solr.client.solrj.request.UpdateRequest;
|
|||
import org.apache.solr.client.solrj.response.QueryResponse;
|
||||
import org.apache.solr.common.SolrDocument;
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.params.CommonParams;
|
||||
import org.apache.solr.common.util.StrUtils;
|
||||
import org.apache.solr.update.processor.CdcrUpdateProcessor;
|
||||
import org.apache.solr.update.processor.DistributedUpdateProcessor;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -40,7 +40,7 @@ public class CdcrVersionReplicationTest extends BaseCdcrDistributedZkTest {
|
|||
|
||||
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
||||
|
||||
private static final String vfield = DistributedUpdateProcessor.VERSION_FIELD;
|
||||
private static final String vfield = CommonParams.VERSION_FIELD;
|
||||
SolrClient solrServer;
|
||||
|
||||
public CdcrVersionReplicationTest() {
|
||||
|
|
|
@ -16,6 +16,11 @@
|
|||
*/
|
||||
package org.apache.solr.cloud;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.lucene.util.LuceneTestCase.Slow;
|
||||
import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
|
||||
import org.apache.solr.client.solrj.SolrClient;
|
||||
|
@ -38,16 +43,11 @@ import org.apache.solr.common.params.CollectionParams.CollectionAction;
|
|||
import org.apache.solr.common.params.ModifiableSolrParams;
|
||||
import org.apache.solr.common.util.NamedList;
|
||||
import org.apache.solr.common.util.Utils;
|
||||
import org.apache.solr.update.VersionInfo;
|
||||
import org.apache.solr.update.processor.DistributedUpdateProcessor;
|
||||
import org.apache.zookeeper.CreateMode;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
|
||||
/**
|
||||
* Super basic testing, no shard restarting or anything.
|
||||
|
@ -718,12 +718,12 @@ public class FullSolrCloudDistribCmdsTest extends AbstractFullDistribZkTestBase
|
|||
|
||||
private void testOptimisticUpdate(QueryResponse results) throws Exception {
|
||||
SolrDocument doc = results.getResults().get(0);
|
||||
Long version = (Long) doc.getFieldValue(VersionInfo.VERSION_FIELD);
|
||||
Long version = (Long) doc.getFieldValue(VERSION_FIELD);
|
||||
Integer theDoc = (Integer) doc.getFieldValue("id");
|
||||
UpdateRequest uReq = new UpdateRequest();
|
||||
SolrInputDocument doc1 = new SolrInputDocument();
|
||||
uReq.setParams(new ModifiableSolrParams());
|
||||
uReq.getParams().set(DistributedUpdateProcessor.VERSION_FIELD, Long.toString(version));
|
||||
uReq.getParams().set(VERSION_FIELD, Long.toString(version));
|
||||
addFields(doc1, "id", theDoc, t1, "theupdatestuff");
|
||||
uReq.add(doc1);
|
||||
|
||||
|
@ -736,7 +736,7 @@ public class FullSolrCloudDistribCmdsTest extends AbstractFullDistribZkTestBase
|
|||
SolrInputDocument doc2 = new SolrInputDocument();
|
||||
uReq = new UpdateRequest();
|
||||
uReq.setParams(new ModifiableSolrParams());
|
||||
uReq.getParams().set(DistributedUpdateProcessor.VERSION_FIELD, Long.toString(version));
|
||||
uReq.getParams().set(VERSION_FIELD, Long.toString(version));
|
||||
addFields(doc2, "id", theDoc, t1, "thenewupdatestuff");
|
||||
uReq.add(doc2);
|
||||
|
||||
|
|
|
@ -26,8 +26,8 @@ import java.util.concurrent.atomic.AtomicLong;
|
|||
import com.codahale.metrics.Gauge;
|
||||
import com.codahale.metrics.Meter;
|
||||
import com.codahale.metrics.Metric;
|
||||
import org.apache.lucene.index.TieredMergePolicy;
|
||||
import org.apache.lucene.index.DirectoryReader;
|
||||
import org.apache.lucene.index.TieredMergePolicy;
|
||||
import org.apache.lucene.store.Directory;
|
||||
import org.apache.solr.SolrTestCaseJ4;
|
||||
import org.apache.solr.common.params.CommonParams;
|
||||
|
@ -46,6 +46,8 @@ import org.junit.Test;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
|
@ -128,7 +130,7 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
|
|||
assertNull("This test requires a schema that has no version field, " +
|
||||
"it appears the schema file in use has been edited to violate " +
|
||||
"this requirement",
|
||||
h.getCore().getLatestSchema().getFieldOrNull(VersionInfo.VERSION_FIELD));
|
||||
h.getCore().getLatestSchema().getFieldOrNull(VERSION_FIELD));
|
||||
|
||||
assertU(adoc("id","5"));
|
||||
assertU(adoc("id","6"));
|
||||
|
|
|
@ -43,9 +43,9 @@ import org.apache.solr.common.SolrDocumentList;
|
|||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.common.SolrInputField;
|
||||
import org.apache.solr.common.params.CommonParams;
|
||||
import org.apache.solr.index.NoMergePolicyFactory;
|
||||
import org.apache.solr.request.SolrQueryRequest;
|
||||
import org.apache.solr.update.processor.DistributedUpdateProcessor;
|
||||
import org.apache.solr.schema.IndexSchema;
|
||||
import org.apache.solr.schema.SchemaField;
|
||||
import org.apache.solr.search.SolrIndexSearcher;
|
||||
|
@ -1119,8 +1119,8 @@ public class TestInPlaceUpdatesStandalone extends SolrTestCaseJ4 {
|
|||
try (SolrQueryRequest req = req()) {
|
||||
AddUpdateCommand cmd = new AddUpdateCommand(req);
|
||||
cmd.solrDoc = sdoc;
|
||||
assertTrue(cmd.solrDoc.containsKey(DistributedUpdateProcessor.VERSION_FIELD));
|
||||
cmd.setVersion(Long.parseLong(cmd.solrDoc.getFieldValue(DistributedUpdateProcessor.VERSION_FIELD).toString()));
|
||||
assertTrue(cmd.solrDoc.containsKey(CommonParams.VERSION_FIELD));
|
||||
cmd.setVersion(Long.parseLong(cmd.solrDoc.getFieldValue(CommonParams.VERSION_FIELD).toString()));
|
||||
return AtomicUpdateDocumentMerger.computeInPlaceUpdatableFields(cmd);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,11 +26,11 @@ import org.apache.solr.common.SolrException;
|
|||
import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.handler.component.RealTimeGetComponent;
|
||||
import org.apache.solr.request.SolrQueryRequest;
|
||||
import org.apache.solr.update.processor.DistributedUpdateProcessor;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
import static org.junit.internal.matchers.StringContains.containsString;
|
||||
|
||||
public class UpdateLogTest extends SolrTestCaseJ4 {
|
||||
|
@ -265,8 +265,8 @@ public class UpdateLogTest extends SolrTestCaseJ4 {
|
|||
public static AddUpdateCommand buildAddUpdateCommand(final SolrQueryRequest req, final SolrInputDocument sdoc) {
|
||||
AddUpdateCommand cmd = new AddUpdateCommand(req);
|
||||
cmd.solrDoc = sdoc;
|
||||
assertTrue("", cmd.solrDoc.containsKey(DistributedUpdateProcessor.VERSION_FIELD));
|
||||
cmd.setVersion(Long.parseLong(cmd.solrDoc.getFieldValue(DistributedUpdateProcessor.VERSION_FIELD).toString()));
|
||||
assertTrue("", cmd.solrDoc.containsKey(VERSION_FIELD));
|
||||
cmd.setVersion(Long.parseLong(cmd.solrDoc.getFieldValue(VERSION_FIELD).toString()));
|
||||
return cmd;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,6 +89,7 @@ import static org.apache.solr.common.params.CommonParams.AUTHZ_PATH;
|
|||
import static org.apache.solr.common.params.CommonParams.COLLECTIONS_HANDLER_PATH;
|
||||
import static org.apache.solr.common.params.CommonParams.CONFIGSETS_HANDLER_PATH;
|
||||
import static org.apache.solr.common.params.CommonParams.CORES_HANDLER_PATH;
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* SolrJ client class to communicate with SolrCloud.
|
||||
|
@ -121,7 +122,7 @@ public class CloudSolrClient extends SolrClient {
|
|||
private ExecutorService threadPool = ExecutorUtil
|
||||
.newMDCAwareCachedThreadPool(new SolrjNamedThreadFactory(
|
||||
"CloudSolrClient ThreadPool"));
|
||||
private String idField = "id";
|
||||
private String idField = ID;
|
||||
public static final String STATE_VERSION = "_stateVer_";
|
||||
private long retryExpiryTime = TimeUnit.NANOSECONDS.convert(3, TimeUnit.SECONDS);//3 seconds or 3 million nanos
|
||||
private final Set<String> NON_ROUTABLE_PARAMS;
|
||||
|
|
|
@ -20,10 +20,13 @@ import java.io.IOException;
|
|||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.solr.client.solrj.io.stream.CloudSolrStream;
|
||||
import org.apache.solr.client.solrj.io.stream.StreamContext;
|
||||
import org.apache.solr.common.params.ModifiableSolrParams;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
|
||||
|
||||
/**
|
||||
* The Model cache keeps a local in-memory copy of models
|
||||
|
@ -92,8 +95,8 @@ public class ModelCache {
|
|||
Model m = models.get(modelID);
|
||||
if (m != null) {
|
||||
Tuple t = m.getTuple();
|
||||
long v = t.getLong("_version_");
|
||||
if (v >= tuple.getLong("_version_")) {
|
||||
long v = t.getLong(VERSION_FIELD);
|
||||
if (v >= tuple.getLong(VERSION_FIELD)) {
|
||||
return t;
|
||||
} else {
|
||||
models.put(modelID, new Model(tuple, currentTime));
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.solr.client.solrj.io.stream;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.util.ArrayList;
|
||||
|
@ -38,6 +39,8 @@ import org.apache.solr.client.solrj.io.stream.expr.StreamFactory;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
|
||||
public class DaemonStream extends TupleStream implements Expressible {
|
||||
|
||||
|
@ -63,7 +66,7 @@ public class DaemonStream extends TupleStream implements Expressible {
|
|||
|
||||
TupleStream tupleStream = factory.constructStream(streamExpressions.get(0));
|
||||
|
||||
StreamExpressionNamedParameter idExpression = factory.getNamedOperand(expression, "id");
|
||||
StreamExpressionNamedParameter idExpression = factory.getNamedOperand(expression, ID);
|
||||
StreamExpressionNamedParameter runExpression = factory.getNamedOperand(expression, "runInterval");
|
||||
StreamExpressionNamedParameter queueExpression = factory.getNamedOperand(expression, "queueSize");
|
||||
StreamExpressionNamedParameter terminateExpression = factory.getNamedOperand(expression, "terminate");
|
||||
|
@ -130,7 +133,7 @@ public class DaemonStream extends TupleStream implements Expressible {
|
|||
expression.addParameter("<stream>");
|
||||
}
|
||||
|
||||
expression.addParameter(new StreamExpressionNamedParameter("id", id));
|
||||
expression.addParameter(new StreamExpressionNamedParameter(ID, id));
|
||||
expression.addParameter(new StreamExpressionNamedParameter("runInterval", Long.toString(runInterval)));
|
||||
expression.addParameter(new StreamExpressionNamedParameter("queueSize", Integer.toString(queueSize)));
|
||||
expression.addParameter(new StreamExpressionNamedParameter("terminate", Boolean.toString(terminate)));
|
||||
|
@ -230,7 +233,7 @@ public class DaemonStream extends TupleStream implements Expressible {
|
|||
|
||||
public synchronized Tuple getInfo() {
|
||||
Tuple tuple = new Tuple(new HashMap());
|
||||
tuple.put("id", id);
|
||||
tuple.put(ID, id);
|
||||
tuple.put("startTime", startTime);
|
||||
tuple.put("stopTime", stopTime);
|
||||
tuple.put("iterations", iterations);
|
||||
|
|
|
@ -41,6 +41,8 @@ import org.apache.solr.common.util.SolrjNamedThreadFactory;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* The executor function wraps a stream with Tuples containing Streaming Expressions
|
||||
* and executes them in parallel. Sample syntax:
|
||||
|
@ -197,7 +199,7 @@ public class ExecutorStream extends TupleStream implements Expressible {
|
|||
}
|
||||
|
||||
String expr = tuple.getString("expr_s");
|
||||
Object id = tuple.get("id");
|
||||
Object id = tuple.get(ID);
|
||||
TupleStream stream = null;
|
||||
|
||||
try {
|
||||
|
|
|
@ -59,6 +59,8 @@ import org.apache.solr.common.util.ExecutorUtil;
|
|||
import org.apache.solr.common.util.NamedList;
|
||||
import org.apache.solr.common.util.SolrjNamedThreadFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
public class FeaturesSelectionStream extends TupleStream implements Expressible{
|
||||
|
||||
private static final long serialVersionUID = 1;
|
||||
|
@ -355,7 +357,7 @@ public class FeaturesSelectionStream extends TupleStream implements Expressible{
|
|||
if (tuples.size() == numTerms) break;
|
||||
index++;
|
||||
Map map = new HashMap();
|
||||
map.put("id", featureSet + "_" + index);
|
||||
map.put(ID, featureSet + "_" + index);
|
||||
map.put("index_i", index);
|
||||
map.put("term_s", termScore.getKey());
|
||||
map.put("score_f", termScore.getValue());
|
||||
|
|
|
@ -19,11 +19,11 @@ package org.apache.solr.client.solrj.io.stream;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.apache.solr.client.solrj.io.Tuple;
|
||||
import org.apache.solr.client.solrj.io.comp.StreamComparator;
|
||||
|
@ -37,6 +37,8 @@ import org.apache.solr.client.solrj.io.stream.expr.StreamExpressionValue;
|
|||
import org.apache.solr.client.solrj.io.stream.expr.StreamFactory;
|
||||
import org.apache.solr.common.params.ModifiableSolrParams;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
|
||||
/**
|
||||
* Iterates over a stream and fetches additional fields from a specified collection.
|
||||
* Fetches are done in batches.
|
||||
|
@ -139,7 +141,7 @@ public class FetchStream extends TupleStream implements Expressible {
|
|||
|
||||
for(int i=0; i<fields.length; i++) {
|
||||
fields[i] = fields[i].trim();
|
||||
if(fields[i].equals("_version_")) {
|
||||
if(fields[i].equals(VERSION_FIELD)) {
|
||||
appendVersion = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,6 +37,8 @@ import org.apache.solr.client.solrj.io.stream.expr.StreamExpressionParameter;
|
|||
import org.apache.solr.client.solrj.io.stream.expr.StreamExpressionValue;
|
||||
import org.apache.solr.client.solrj.io.stream.expr.StreamFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* The ModelStream retrieves a stored model from a Solr Cloud collection.
|
||||
*
|
||||
|
@ -87,7 +89,7 @@ public class ModelStream extends TupleStream implements Expressible {
|
|||
}
|
||||
}
|
||||
|
||||
String modelID = params.get("id");
|
||||
String modelID = params.get(ID);
|
||||
if (modelID == null) {
|
||||
throw new IOException("id param cannot be null for ModelStream");
|
||||
}
|
||||
|
@ -133,7 +135,7 @@ public class ModelStream extends TupleStream implements Expressible {
|
|||
|
||||
// zkHost
|
||||
expression.addParameter(new StreamExpressionNamedParameter("zkHost", zkHost));
|
||||
expression.addParameter(new StreamExpressionNamedParameter("id", modelID));
|
||||
expression.addParameter(new StreamExpressionNamedParameter(ID, modelID));
|
||||
expression.addParameter(new StreamExpressionNamedParameter("cacheMillis", Long.toString(cacheMillis)));
|
||||
|
||||
return expression;
|
||||
|
|
|
@ -60,6 +60,8 @@ import org.apache.solr.common.util.ExecutorUtil;
|
|||
import org.apache.solr.common.util.NamedList;
|
||||
import org.apache.solr.common.util.SolrjNamedThreadFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
public class TextLogitStream extends TupleStream implements Expressible {
|
||||
|
||||
private static final long serialVersionUID = 1;
|
||||
|
@ -463,7 +465,7 @@ public class TextLogitStream extends TupleStream implements Expressible {
|
|||
|
||||
this.weights = averageWeights(allWeights);
|
||||
Map map = new HashMap();
|
||||
map.put("id", name+"_"+iteration);
|
||||
map.put(ID, name+"_"+iteration);
|
||||
map.put("name_s", name);
|
||||
map.put("field_s", field);
|
||||
map.put("terms_ss", terms);
|
||||
|
|
|
@ -63,6 +63,9 @@ import org.apache.solr.common.util.SolrjNamedThreadFactory;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
|
||||
public class TopicStream extends CloudSolrStream implements Expressible {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
||||
|
@ -74,7 +77,7 @@ public class TopicStream extends CloudSolrStream implements Expressible {
|
|||
private boolean initialRun = true;
|
||||
private String id;
|
||||
protected long checkpointEvery;
|
||||
private Map<String, Long> checkpoints = new HashMap<String, Long>();
|
||||
private Map<String, Long> checkpoints = new HashMap<>();
|
||||
private String checkpointCollection;
|
||||
private long initialCheckpoint = -1;
|
||||
|
||||
|
@ -143,7 +146,7 @@ public class TopicStream extends CloudSolrStream implements Expressible {
|
|||
List<StreamExpressionNamedParameter> namedParams = factory.getNamedOperands(expression);
|
||||
StreamExpressionNamedParameter zkHostExpression = factory.getNamedOperand(expression, "zkHost");
|
||||
|
||||
StreamExpressionNamedParameter idParam = factory.getNamedOperand(expression, "id");
|
||||
StreamExpressionNamedParameter idParam = factory.getNamedOperand(expression, ID);
|
||||
if(null == idParam) {
|
||||
throw new IOException("invalid TopicStream id cannot be null");
|
||||
}
|
||||
|
@ -186,7 +189,7 @@ public class TopicStream extends CloudSolrStream implements Expressible {
|
|||
ModifiableSolrParams params = new ModifiableSolrParams();
|
||||
for(StreamExpressionNamedParameter namedParam : namedParams){
|
||||
if(!namedParam.getName().equals("zkHost") &&
|
||||
!namedParam.getName().equals("id") &&
|
||||
!namedParam.getName().equals(ID) &&
|
||||
!namedParam.getName().equals("checkpointEvery")) {
|
||||
params.set(namedParam.getName(), namedParam.getParameter().toString().trim());
|
||||
}
|
||||
|
@ -240,7 +243,7 @@ public class TopicStream extends CloudSolrStream implements Expressible {
|
|||
|
||||
// zkHost
|
||||
expression.addParameter(new StreamExpressionNamedParameter("zkHost", zkHost));
|
||||
expression.addParameter(new StreamExpressionNamedParameter("id", id));
|
||||
expression.addParameter(new StreamExpressionNamedParameter(ID, id));
|
||||
if(initialCheckpoint > -1) {
|
||||
expression.addParameter(new StreamExpressionNamedParameter("initialCheckpoint", Long.toString(initialCheckpoint)));
|
||||
}
|
||||
|
@ -391,7 +394,7 @@ public class TopicStream extends CloudSolrStream implements Expressible {
|
|||
persistCheckpoints();
|
||||
}
|
||||
|
||||
long version = tuple.getLong("_version_");
|
||||
long version = tuple.getLong(VERSION_FIELD);
|
||||
String slice = tuple.getString("_SLICE_");
|
||||
checkpoints.put(slice, version);
|
||||
|
||||
|
@ -469,7 +472,7 @@ public class TopicStream extends CloudSolrStream implements Expressible {
|
|||
UpdateRequest request = new UpdateRequest();
|
||||
request.setParam("collection", checkpointCollection);
|
||||
SolrInputDocument doc = new SolrInputDocument();
|
||||
doc.addField("id", id);
|
||||
doc.addField(ID, id);
|
||||
|
||||
for(Map.Entry<String, Long> entry : checkpoints.entrySet()) {
|
||||
doc.addField("checkpoint_ss", entry.getKey()+"~"+entry.getValue());
|
||||
|
@ -523,7 +526,7 @@ public class TopicStream extends CloudSolrStream implements Expressible {
|
|||
mParams.set("distrib", "false"); // We are the aggregator.
|
||||
String fl = mParams.get("fl");
|
||||
mParams.set("sort", "_version_ asc");
|
||||
if(!fl.contains("_version_")) {
|
||||
if(!fl.contains(VERSION_FIELD)) {
|
||||
fl += ",_version_";
|
||||
}
|
||||
mParams.set("fl", fl);
|
||||
|
|
|
@ -42,6 +42,8 @@ import org.apache.solr.common.SolrInputDocument;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.VERSION_FIELD;
|
||||
|
||||
/**
|
||||
* Sends tuples emitted by a wrapped {@link TupleStream} as updates to a SolrCloud collection.
|
||||
*/
|
||||
|
@ -268,7 +270,7 @@ public class UpdateStream extends TupleStream implements Expressible {
|
|||
private SolrInputDocument convertTupleToSolrDocument(Tuple tuple) {
|
||||
SolrInputDocument doc = new SolrInputDocument();
|
||||
for (Object field : tuple.fields.keySet()) {
|
||||
if (! ((String)field).equals("_version_")) {
|
||||
if (! field.equals(VERSION_FIELD)) {
|
||||
Object value = tuple.get(field);
|
||||
if (value instanceof List) {
|
||||
addMultivaluedField(doc, (String)field, (List<Object>)value);
|
||||
|
|
|
@ -30,6 +30,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||
|
||||
import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.common.params.ModifiableSolrParams;
|
||||
import org.apache.solr.common.params.ShardParams;
|
||||
import org.apache.solr.common.params.SolrParams;
|
||||
import org.apache.solr.common.util.DataInputInputStream;
|
||||
import org.apache.solr.common.util.JavaBinCodec;
|
||||
|
@ -226,8 +227,8 @@ public class JavaBinUpdateRequestCodec {
|
|||
Map<String,Object> params = entry.getValue();
|
||||
if (params != null) {
|
||||
Long version = (Long) params.get(UpdateRequest.VER);
|
||||
if (params.containsKey(UpdateRequest.ROUTE))
|
||||
updateRequest.deleteById(entry.getKey(), (String) params.get(UpdateRequest.ROUTE));
|
||||
if (params.containsKey(ShardParams._ROUTE_))
|
||||
updateRequest.deleteById(entry.getKey(), (String) params.get(ShardParams._ROUTE_));
|
||||
else
|
||||
updateRequest.deleteById(entry.getKey(), version);
|
||||
} else {
|
||||
|
|
|
@ -44,6 +44,8 @@ import org.apache.solr.common.params.UpdateParams;
|
|||
import org.apache.solr.common.util.ContentStream;
|
||||
import org.apache.solr.common.util.XML;
|
||||
|
||||
import static org.apache.solr.common.params.ShardParams._ROUTE_;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
|
@ -54,7 +56,6 @@ public class UpdateRequest extends AbstractUpdateRequest {
|
|||
public static final String REPFACT = "rf";
|
||||
public static final String MIN_REPFACT = "min_rf";
|
||||
public static final String VER = "ver";
|
||||
public static final String ROUTE = "_route_";
|
||||
public static final String OVERWRITE = "ow";
|
||||
public static final String COMMIT_WITHIN = "cw";
|
||||
private Map<SolrInputDocument,Map<String,Object>> documents = null;
|
||||
|
@ -188,7 +189,7 @@ public class UpdateRequest extends AbstractUpdateRequest {
|
|||
if (version != null)
|
||||
params.put(VER, version);
|
||||
if (route != null)
|
||||
params.put(ROUTE, route);
|
||||
params.put(_ROUTE_, route);
|
||||
deleteById.put(id, params);
|
||||
return this;
|
||||
}
|
||||
|
@ -221,7 +222,7 @@ public class UpdateRequest extends AbstractUpdateRequest {
|
|||
public UpdateRequest withRoute(String route) {
|
||||
if (params == null)
|
||||
params = new ModifiableSolrParams();
|
||||
params.set(ROUTE, route);
|
||||
params.set(_ROUTE_, route);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -461,7 +462,7 @@ public class UpdateRequest extends AbstractUpdateRequest {
|
|||
Map<String,Object> map = entry.getValue();
|
||||
if (map != null) {
|
||||
Long version = (Long) map.get(VER);
|
||||
String route = (String)map.get(ROUTE);
|
||||
String route = (String)map.get(_ROUTE_);
|
||||
if (version != null) {
|
||||
writer.append(" version=\"" + version + "\"");
|
||||
}
|
||||
|
|
|
@ -18,9 +18,11 @@ package org.apache.solr.common;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.solr.common.util.SimpleOrderedMap;
|
||||
import org.apache.solr.common.SolrException;
|
||||
|
||||
import org.apache.solr.common.SolrException.ErrorCode;
|
||||
import org.apache.solr.common.util.SimpleOrderedMap;
|
||||
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
/**
|
||||
* Models the basic information related to a single "tolerated" error that occured during updates.
|
||||
|
@ -74,7 +76,7 @@ public final class ToleratedUpdateError {
|
|||
* @see #getSimpleMap
|
||||
*/
|
||||
public static ToleratedUpdateError parseMap(SimpleOrderedMap<String> data) {
|
||||
final String id = data.get("id");
|
||||
final String id = data.get(ID);
|
||||
final String message = data.get("message");
|
||||
final String t = data.get("type");
|
||||
if (null == t || null == id || null == message) {
|
||||
|
@ -156,7 +158,7 @@ public final class ToleratedUpdateError {
|
|||
public SimpleOrderedMap<String> getSimpleMap() {
|
||||
SimpleOrderedMap<String> entry = new SimpleOrderedMap<String>();
|
||||
entry.add("type", type.toString());
|
||||
entry.add("id", id);
|
||||
entry.add(ID, id);
|
||||
entry.add("message", message);
|
||||
return entry;
|
||||
}
|
||||
|
|
|
@ -16,13 +16,15 @@
|
|||
*/
|
||||
package org.apache.solr.common.cloud;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.common.params.SolrParams;
|
||||
import org.apache.solr.common.util.Hash;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import static org.apache.solr.common.params.CommonParams.ID;
|
||||
|
||||
public abstract class HashBasedRouter extends DocRouter {
|
||||
|
||||
|
@ -51,7 +53,7 @@ public abstract class HashBasedRouter extends DocRouter {
|
|||
}
|
||||
|
||||
protected String getId(SolrInputDocument sdoc, SolrParams params) {
|
||||
Object idObj = sdoc.getFieldValue("id"); // blech
|
||||
Object idObj = sdoc.getFieldValue(ID); // blech
|
||||
String id = idObj != null ? idObj.toString() : "null"; // should only happen on client side
|
||||
return id;
|
||||
}
|
||||
|
|
|
@ -259,5 +259,9 @@ public interface CommonParams {
|
|||
|
||||
String NAME = "name";
|
||||
String VALUE_LONG = "val";
|
||||
|
||||
String VERSION_FIELD="_version_";
|
||||
|
||||
String ID = "id";
|
||||
}
|
||||
|
||||
|
|
|
@ -25,35 +25,35 @@ package org.apache.solr.common.params;
|
|||
*/
|
||||
public interface ShardParams {
|
||||
/** the shards to use (distributed configuration) */
|
||||
public static final String SHARDS = "shards";
|
||||
String SHARDS = "shards";
|
||||
|
||||
/** per-shard start and rows */
|
||||
public static final String SHARDS_ROWS = "shards.rows";
|
||||
public static final String SHARDS_START = "shards.start";
|
||||
String SHARDS_ROWS = "shards.rows";
|
||||
String SHARDS_START = "shards.start";
|
||||
|
||||
/** IDs of the shard documents */
|
||||
public static final String IDS = "ids";
|
||||
String IDS = "ids";
|
||||
|
||||
/** whether the request goes to a shard */
|
||||
public static final String IS_SHARD = "isShard";
|
||||
String IS_SHARD = "isShard";
|
||||
|
||||
/** The requested URL for this shard */
|
||||
public static final String SHARD_URL = "shard.url";
|
||||
String SHARD_URL = "shard.url";
|
||||
|
||||
/** The Request Handler for shard requests */
|
||||
public static final String SHARDS_QT = "shards.qt";
|
||||
String SHARDS_QT = "shards.qt";
|
||||
|
||||
/** Request detailed match info for each shard (true/false) */
|
||||
public static final String SHARDS_INFO = "shards.info";
|
||||
String SHARDS_INFO = "shards.info";
|
||||
|
||||
/** Should things fail if there is an error? (true/false) */
|
||||
public static final String SHARDS_TOLERANT = "shards.tolerant";
|
||||
String SHARDS_TOLERANT = "shards.tolerant";
|
||||
|
||||
/** query purpose for shard requests */
|
||||
public static final String SHARDS_PURPOSE = "shards.purpose";
|
||||
String SHARDS_PURPOSE = "shards.purpose";
|
||||
|
||||
public static final String _ROUTE_ = "_route_";
|
||||
String _ROUTE_ = "_route_";
|
||||
|
||||
/** Force a single-pass distributed query? (true/false) */
|
||||
public static final String DISTRIB_SINGLE_PASS = "distrib.singlePass";
|
||||
String DISTRIB_SINGLE_PASS = "distrib.singlePass";
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue