当前位置: 首页>>代码示例>>Java>>正文


Java ShardRequest类代码示例

本文整理汇总了Java中org.apache.solr.handler.component.ShardRequest的典型用法代码示例。如果您正苦于以下问题:Java ShardRequest类的具体用法?Java ShardRequest怎么用?Java ShardRequest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ShardRequest类属于org.apache.solr.handler.component包,在下文中一共展示了ShardRequest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: requestUpdates

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
private boolean requestUpdates(ShardResponse srsp, List<Long> toRequest) {
  String replica = srsp.getShardRequest().shards[0];

  log.info(msg() + "Requesting updates from " + replica + "n=" + toRequest.size() + " versions=" + toRequest);

  // reuse our original request object
  ShardRequest sreq = srsp.getShardRequest();

  sreq.purpose = 0;
  sreq.params = new ModifiableSolrParams();
  sreq.params.set("qt", "/get");
  sreq.params.set("distrib", false);
  sreq.params.set("getUpdates", StrUtils.join(toRequest, ','));
  sreq.params.set("onlyIfActive", onlyIfActive);
  sreq.responses.clear();  // needs to be zeroed for correct correlation to occur

  shardHandler.submit(sreq, sreq.shards[0], sreq.params);

  return true;
}
 
开发者ID:europeana,项目名称:search,代码行数:21,代码来源:PeerSync.java

示例2: process

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public void process(ResponseBuilder rb, ShardRequest shardRequest) {
  boolean returnScores = (rb.getFieldFlags() & SolrIndexSearcher.GET_SCORES) != 0;
  ShardResponse srsp = shardRequest.responses.get(0);
  SolrDocumentList docs = (SolrDocumentList)srsp.getSolrResponse().getResponse().get("response");
  String uniqueIdFieldName = rb.req.getSchema().getUniqueKeyField().getName();

  for (SolrDocument doc : docs) {
    Object id = doc.getFieldValue(uniqueIdFieldName).toString();
    ShardDoc shardDoc = rb.resultIds.get(id);
    FieldDoc fieldDoc = (FieldDoc) shardDoc;
    if (shardDoc != null) {
      if (returnScores && !Float.isNaN(fieldDoc.score)) {
          doc.setField("score", fieldDoc.score);
      }
      rb.retrievedDocuments.put(id, doc);
    }
  }
}
 
开发者ID:europeana,项目名称:search,代码行数:23,代码来源:StoredFieldsShardResponseProcessor.java

示例3: invokeOverseerOp

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
private void invokeOverseerOp(String electionNode, String op) {
  ModifiableSolrParams params = new ModifiableSolrParams();
  ShardHandler shardHandler = shardHandlerFactory.getShardHandler();
  params.set(CoreAdminParams.ACTION, CoreAdminAction.OVERSEEROP.toString());
  params.set("op", op);
  params.set("qt", adminPath);
  params.set("electionNode", electionNode);
  ShardRequest sreq = new ShardRequest();
  sreq.purpose = 1;
  String replica = zkStateReader.getBaseUrlForNodeName(LeaderElector.getNodeName(electionNode));
  sreq.shards = new String[]{replica};
  sreq.actualShards = sreq.shards;
  sreq.params = params;
  shardHandler.submit(sreq, replica, sreq.params);
  shardHandler.takeCompletedOrError();
}
 
开发者ID:europeana,项目名称:search,代码行数:17,代码来源:OverseerCollectionProcessor.java

示例4: distributedProcess

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
/** Dispatch shard request in <code>STAGE_EXECUTE_QUERY</code> stage */
@Override
public int distributedProcess(ResponseBuilder rb) {
  SolrParams params = rb.req.getParams();
  LOG.debug("SuggestComponent distributedProcess with : " + params);
  if (rb.stage < ResponseBuilder.STAGE_EXECUTE_QUERY) 
    return ResponseBuilder.STAGE_EXECUTE_QUERY;
  if (rb.stage == ResponseBuilder.STAGE_EXECUTE_QUERY) {
    ShardRequest sreq = new ShardRequest();
    sreq.purpose = ShardRequest.PURPOSE_GET_TOP_IDS;
    sreq.params = new ModifiableSolrParams(rb.req.getParams());
    sreq.params.remove(ShardParams.SHARDS);
    rb.addRequest(this, sreq);
    return ResponseBuilder.STAGE_GET_FIELDS;
  }

  return ResponseBuilder.STAGE_DONE;
}
 
开发者ID:Alfresco,项目名称:community-edition-old,代码行数:19,代码来源:AsyncBuildSuggestComponent.java

示例5: requestUpdates

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
private boolean requestUpdates(ShardResponse srsp, List<Long> toRequest) {
  String replica = srsp.getShardRequest().shards[0];

  log.info(msg() + "Requesting updates from " + replica + "n=" + toRequest.size() + " versions=" + toRequest);

  // reuse our original request object
  ShardRequest sreq = srsp.getShardRequest();

  sreq.purpose = 0;
  sreq.params = new ModifiableSolrParams();
  sreq.params.set("qt","/get");
  sreq.params.set("distrib",false);
  sreq.params.set("getUpdates", StrUtils.join(toRequest, ','));
  sreq.responses.clear();  // needs to be zeroed for correct correlation to occur

  shardHandler.submit(sreq, sreq.shards[0], sreq.params);

  return true;
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:20,代码来源:PeerSync.java

示例6: modifyRequest

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
@Override
public void modifyRequest(ResponseBuilder rb, SearchComponent who, ShardRequest sreq) {
	System.out.println("===== MODIFY REQUEST =====");
	System.out.println("who=" + who);
	System.out.println("purpose=" + sreq.purpose);
	if ((sreq.purpose & ShardRequest.PURPOSE_GET_FIELDS) > 0) {
		if (fieldListIncludes(rb, DJOIN_FIELD)) {
			Set<String> fl = new HashSet<>(getFieldList(sreq.params));
			fl.add(SHARD_FIELD);
			sreq.params.set(CommonParams.FL, String.join(",", fl));
		}
		
		// enable faceting on shards to get join ids
		sreq.params.set("facet", true);
		sreq.params.set("facet.field", joinField);
	}
}
 
开发者ID:flaxsearch,项目名称:BioSolr,代码行数:18,代码来源:NumFoundSearchComponent.java

示例7: handleResponses

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public void handleResponses(ResponseBuilder rb, ShardRequest req) {
	System.out.println("===== HANDLE RESPONSES =====");
	System.out.println("purpose=" + req.purpose);
	System.out.println("Shards: " + (req.shards != null ? String.join(" ", req.shards) : "(null)"));
	if ((req.purpose & ShardRequest.PURPOSE_GET_FIELDS) > 0) {
		Map<String, Long> numFounds = (Map<String, Long>)rb.req.getContext().get(COMPONENT_NAME + "numFounds");
		Set<Object> joinIds = (Set<Object>)rb.req.getContext().get(COMPONENT_NAME + "joinIds");
		for (ShardResponse rsp : req.responses) {
			NamedList response = rsp.getSolrResponse().getResponse();
			SolrDocumentList results = (SolrDocumentList)response.get("response");
			numFounds.put(rsp.getShard(), results.getNumFound());
			NamedList counts = (NamedList)response.get("facet_counts");
			if (counts != null) {
				NamedList fields = (NamedList)counts.get("facet_fields");
				NamedList values = (NamedList)fields.get(joinField);
				for (int i = 0; i < values.size(); ++i) {
					joinIds.add(values.getName(i));
				}
			}
		}
	}
}
 
开发者ID:flaxsearch,项目名称:BioSolr,代码行数:25,代码来源:NumFoundSearchComponent.java

示例8: modifyRequest

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
@Override
public void modifyRequest(ResponseBuilder rb, SearchComponent who, ShardRequest sreq) {
  if (!checkComponentShouldProcess(rb)) {
    return;
  }

  sreq.params.set(getComponentName(), "false");
}
 
开发者ID:sematext,项目名称:solr-researcher,代码行数:9,代码来源:AbstractReSearcherComponent.java

示例9: modifyRequest

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
@Override
public void modifyRequest(ResponseBuilder rb, SearchComponent who, ShardRequest sreq) {
  SolrParams params = rb.req.getParams();
  if (!params.getBool(COMPONENT_NAME, false) || !params.getBool(ClusteringParams.USE_SEARCH_RESULTS, false)) {
    return;
  }
  sreq.params.remove(COMPONENT_NAME);
  if( ( sreq.purpose & ShardRequest.PURPOSE_GET_FIELDS ) != 0 ){
    String fl = sreq.params.get(CommonParams.FL,"*");
    // if fl=* then we don't need check
    if( fl.indexOf( '*' ) >= 0 ) return;
    Set<String> fields = getSearchClusteringEngine(rb).getFieldsToLoad(rb.req);
    if( fields == null || fields.size() == 0 ) return;
    StringBuilder sb = new StringBuilder();
    String[] flparams = fl.split( "[,\\s]+" );
    Set<String> flParamSet = new HashSet<>(flparams.length);
    for( String flparam : flparams ){
      // no need trim() because of split() by \s+
      flParamSet.add(flparam);
    }
    for( String aFieldToLoad : fields ){
      if( !flParamSet.contains( aFieldToLoad ) ){
        sb.append( ',' ).append( aFieldToLoad );
      }
    }
    if( sb.length() > 0 ){
      sreq.params.set( CommonParams.FL, fl + sb.toString() );
    }
  }
}
 
开发者ID:europeana,项目名称:search,代码行数:31,代码来源:ClusteringComponent.java

示例10: constructRequest

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public ShardRequest[] constructRequest(ResponseBuilder rb) {
  // If we have a group.query we need to query all shards... Or we move this to the group first phase queries
  boolean containsGroupByQuery = rb.getGroupingSpec().getQueries().length > 0;
  // TODO: If groups.truncate=true we only have to query the specific shards even faceting and statistics are enabled
  if ((rb.getQueryCommand().getFlags() & SolrIndexSearcher.GET_DOCSET) != 0 || containsGroupByQuery) {
    // In case we need more results such as faceting and statistics we have to query all shards
    return createRequestForAllShards(rb);
  } else {
    // In case we only need top groups we only have to query the shards that contain these groups.
    return createRequestForSpecificShards(rb);
  }
}
 
开发者ID:europeana,项目名称:search,代码行数:17,代码来源:TopGroupsShardRequestFactory.java

示例11: createRequestForSpecificShards

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
private ShardRequest[] createRequestForSpecificShards(ResponseBuilder rb) {
  // Determine all unique shards to query for TopGroups
  Set<String> uniqueShards = new HashSet<>();
  for (String command : rb.searchGroupToShards.keySet()) {
    Map<SearchGroup<BytesRef>, Set<String>> groupsToShard = rb.searchGroupToShards.get(command);
    for (Set<String> shards : groupsToShard.values()) {
      uniqueShards.addAll(shards);
    }
  }

  return createRequest(rb, uniqueShards.toArray(new String[uniqueShards.size()]));
}
 
开发者ID:europeana,项目名称:search,代码行数:13,代码来源:TopGroupsShardRequestFactory.java

示例12: sendShardRequest

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
private void sendShardRequest(String nodeName, ModifiableSolrParams params, ShardHandler shardHandler) {
  ShardRequest sreq = new ShardRequest();
  params.set("qt", adminPath);
  sreq.purpose = 1;
  String replica = zkStateReader.getBaseUrlForNodeName(nodeName);
  sreq.shards = new String[]{replica};
  sreq.actualShards = sreq.shards;
  sreq.params = params;

  shardHandler.submit(sreq, replica, sreq.params);
}
 
开发者ID:europeana,项目名称:search,代码行数:12,代码来源:OverseerCollectionProcessor.java

示例13: sliceCmd

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
private void sliceCmd(ClusterState clusterState, ModifiableSolrParams params, String stateMatcher,
                      Slice slice, ShardHandler shardHandler) {
  Map<String,Replica> shards = slice.getReplicasMap();
  Set<Map.Entry<String,Replica>> shardEntries = shards.entrySet();
  for (Map.Entry<String,Replica> shardEntry : shardEntries) {
    final ZkNodeProps node = shardEntry.getValue();
    if (clusterState.liveNodesContain(node.getStr(ZkStateReader.NODE_NAME_PROP)) && (stateMatcher != null ? node.getStr(ZkStateReader.STATE_PROP).equals(stateMatcher) : true)) {
      // For thread safety, only simple clone the ModifiableSolrParams
      ModifiableSolrParams cloneParams = new ModifiableSolrParams();
      cloneParams.add(params);
      cloneParams.set(CoreAdminParams.CORE,
          node.getStr(ZkStateReader.CORE_NAME_PROP));

      String replica = node.getStr(ZkStateReader.BASE_URL_PROP);
      ShardRequest sreq = new ShardRequest();
      sreq.nodeName = node.getStr(ZkStateReader.NODE_NAME_PROP);
      // yes, they must use same admin handler path everywhere...
      cloneParams.set("qt", adminPath);
      sreq.purpose = 1;
      sreq.shards = new String[] {replica};
      sreq.actualShards = sreq.shards;
      sreq.params = cloneParams;
      log.info("Collection Admin sending CoreAdmin cmd to " + replica
          + " params:" + sreq.params);
      shardHandler.submit(sreq, replica, sreq.params);
    }
  }
}
 
开发者ID:europeana,项目名称:search,代码行数:29,代码来源:OverseerCollectionProcessor.java

示例14: merge

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
public void merge(ResponseBuilder rb, ShardRequest shardRequest) {
  int count = 0;
  NamedList merged = new NamedList();

  for(ShardResponse shardResponse : shardRequest.responses) {
    NamedList response = shardResponse.getSolrResponse().getResponse();
    NamedList analytics = (NamedList)response.get("analytics");
    Integer c = (Integer)analytics.get("mycount");
    count += c.intValue();
  }

  merged.add("mycount", count);
  rb.rsp.add("analytics", merged);
}
 
开发者ID:europeana,项目名称:search,代码行数:15,代码来源:TestAnalyticsQParserPlugin.java

示例15: getShardHandler

import org.apache.solr.handler.component.ShardRequest; //导入依赖的package包/类
@Override
public ShardHandler getShardHandler() {
  return new ShardHandler() {
    @Override
    public void checkDistributed(ResponseBuilder rb) {}

    @Override
    public void submit(ShardRequest sreq, String shard,
        ModifiableSolrParams params) {}

    @Override
    public ShardResponse takeCompletedIncludingErrors() {
      return null;
    }

    @Override
    public ShardResponse takeCompletedOrError() {
      return null;
    }

    @Override
    public void cancelAll() {}

    @Override
    public ShardHandlerFactory getShardHandlerFactory() {
      return MockShardHandlerFactory.this;
    }
  };
}
 
开发者ID:europeana,项目名称:search,代码行数:30,代码来源:MockShardHandlerFactory.java


注:本文中的org.apache.solr.handler.component.ShardRequest类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。