本文整理汇总了Java中org.apache.solr.client.solrj.response.GroupCommand类的典型用法代码示例。如果您正苦于以下问题:Java GroupCommand类的具体用法?Java GroupCommand怎么用?Java GroupCommand使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
GroupCommand类属于org.apache.solr.client.solrj.response包,在下文中一共展示了GroupCommand类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getResponseDocuments
import org.apache.solr.client.solrj.response.GroupCommand; //导入依赖的package包/类
protected List<SolrDocument> getResponseDocuments(QueryResponse response) {
List<SolrDocument> docs;
if (response.getGroupResponse() == null) {
docs = response.getResults();
} else {
docs = new ArrayList<SolrDocument>();
GroupResponse gr = response.getGroupResponse();
for (GroupCommand gc : gr.getValues()) {
for (Group g : gc.getValues()) {
for (SolrDocument d : g.getResult()) {
docs.add(d);
}
}
}
}
return docs;
}
示例2: execute
import org.apache.solr.client.solrj.response.GroupCommand; //导入依赖的package包/类
public boolean execute() {
SolrQuery query = queryGenerator.generate();
try {
logger.debug("executing query: " + query);
long init = System.nanoTime();
QueryResponse response = this.executeQuery(query);
long clientTime = (System.nanoTime() - init)/1000000;
if (response.getGroupResponse() != null) {
for (GroupCommand command : response.getGroupResponse().getValues()) {
logger.debug(command.getNGroups() + " groups found for " + command.getName() + " in " + response.getQTime() + " ms");
}
} else {
logger.debug(response.getResults().getNumFound() + " results found in " + response.getQTime() + " ms");
}
if(response.getQTime() < 0) {
throw new RuntimeException("The query returned less than 0 as q time: " + response.getResponseHeader().get("q") + response.getQTime());
}
executor.notifyQueryExecuted(response, clientTime);
} catch (SolrServerException e) {
logger.error("Error on Query " + query);
e.printStackTrace();
executor.notifyError(new QueryException(e, query));
return false;
}
return true;
}
示例3: getResponseDocuments
import org.apache.solr.client.solrj.response.GroupCommand; //导入依赖的package包/类
@Override
public List<SolrDocument> getResponseDocuments(QueryResponse response) {
List<SolrDocument> docs;
if (response.getGroupResponse() == null) {
docs = response.getResults();
} else {
docs = new ArrayList<SolrDocument>();
GroupResponse gr = response.getGroupResponse();
for (GroupCommand gc : gr.getValues()) {
for (Group g : gc.getValues()) {
for (SolrDocument d : g.getResult()) {
docs.add(d);
}
}
}
}
return docs;
}
示例4: QueryLogValue
import org.apache.solr.client.solrj.response.GroupCommand; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public QueryLogValue(QueryResponse response) {
Object parameter;
error = false;
NamedList<Object> params = (NamedList<Object>)response.getResponseHeader().get("params");
if(params!=null) {
parameter = params.get("q");
if (parameter != null) {
queryString = parameter.toString();
}
parameter = params.get("fq");
if (parameter != null) {
filterQueryString = parameter.toString();
}
}
facetQueryString = createFacetQuery(response.getFacetFields());
qTime = response.getQTime();
if (response.getGroupResponse() != null) {
results = new Long(0);
for (GroupCommand command : response.getGroupResponse().getValues()) {
if (command.getNGroups() != null) {
results += command.getNGroups();
}
}
} else {
results = response.getResults().getNumFound();
}
}
示例5: getTopGenesForIndividual
import org.apache.solr.client.solrj.response.GroupCommand; //导入依赖的package包/类
@Override
public List<String> getTopGenesForIndividual(String id, Integer k) {
logger.debug(String.format("getTopGenesForIndividual(%s, %d)", id, k));
final List<String> list = new LinkedList<>();
String queryString = String.format("%s:%s", VariantsSchema.CALLSET_IDS, id);
SolrQuery q = new SolrQuery()
.setQuery(queryString)
.setRows(k)
.setSort(
VariantsSchema.getCallsetsFieldName(id, VariantsSchema.EXOMISER_GENE_COMBINED_SCORE),
SolrQuery.ORDER.desc)
.setParam(GroupParams.GROUP, true)
.setParam(GroupParams.GROUP_FIELD, VariantsSchema.GENE);
QueryResponse resp;
try {
resp = server.query(q);
} catch (SolrServerException | IOException e) {
logger.error("Solr Exception", e);
return list;
}
for (GroupCommand command : resp.getGroupResponse().getValues()) {
for (Group group : command.getValues()) {
list.add(group.getGroupValue());
}
}
return list;
}
示例6: autocomplete
import org.apache.solr.client.solrj.response.GroupCommand; //导入依赖的package包/类
public List<Match> autocomplete(String query, Integer pageSize, Map<String, String> selectedFacets) throws SolrServerException {
SolrQuery solrQuery = new SolrQuery();
if (query != null && !query.trim().equals("")) {
//String searchString = query.trim().replace(" ", "+");
solrQuery.setQuery(query);
} else {
return new ArrayList<Match>();
}
// Filter the searchable objects out
solrQuery.addFilterQuery("base.class_searchable_b:" + isSearchableObject());
// Set additional result parameters
solrQuery.setRows(pageSize);
if(selectedFacets != null && !selectedFacets.isEmpty()) {
for(String facetName : selectedFacets.keySet()) {
solrQuery.addFilterQuery(facetName + ":" + selectedFacets.get(facetName));
}
}
solrQuery.set("defType","edismax");
solrQuery.set("qf", "autocomplete^3 autocompleteng");
solrQuery.set("pf", "autocompletenge");
solrQuery.set("fl","autocomplete,id");
solrQuery.setHighlight(true);
solrQuery.set("hl.fl", "autocomplete");
solrQuery.set("hl.snippets",3);
solrQuery.setHighlightSimplePre("<b>");
solrQuery.setHighlightSimplePost("</b>");
solrQuery.set("group","true");
solrQuery.set("group.field", "autocomplete");
QueryResponse queryResponse = solrServer.query(solrQuery);
List<Match> results = new ArrayList<Match>();
Map<String,Match> matchMap = new HashMap<String,Match>();
for(GroupCommand groupCommand : queryResponse.getGroupResponse().getValues()) {
for (Group group : groupCommand.getValues()) {
for (SolrDocument solrDocument : group.getResult()) {
Match match = new Match();
String label = filter((String) solrDocument.get("autocomplete"));
match.setLabel(label);
match.setValue(label);
matchMap.put((String) solrDocument.get("id"), match);
results.add(match);
}
}
}
for(String documentId : matchMap.keySet()) {
if(queryResponse.getHighlighting().containsKey(documentId)) {
Map<String, List<String>> highlightedTerms = queryResponse.getHighlighting().get(documentId);
if(highlightedTerms.containsKey("autocomplete")) {
matchMap.get(documentId).setLabel(highlightedTerms.get("autocomplete").get(0));
}
}
}
return results;
}
示例7: beforeClass
import org.apache.solr.client.solrj.response.GroupCommand; //导入依赖的package包/类
@BeforeClass
public static void beforeClass() {
// setup a doc list with 2 documents
SolrDocumentList docs = new SolrDocumentList();
SolrDocument doc1 = new SolrDocument();
doc1.setField("uid", "urn:a:b:c");
doc1.setField("domain", "test");
doc1.setField("kind", "unit test case");
doc1.setField("facility_name", "facility x");
doc1.setField("summary", "foo bar baz");
doc1.setField("foo", "bar");
docs.add(doc1);
SolrDocument doc2 = new SolrDocument();
doc2.setField("uid", "urn:1:2:3");
doc2.setField("domain", "test");
doc2.setField("kind", "unit test case");
doc2.setField("facility_name", "facility x");
doc2.setField("summary", "foo bar baz");
doc2.setField("datetime", "20140101");
docs.add(doc2);
// setup a group response where the 2 documents are grouped
GroupResponse gresp = new GroupResponse();
GroupCommand gcmd = new GroupCommand("kind", 2);
gcmd.add(new Group("unit test case", docs));
gresp.add(gcmd);
// setup mock objects
q = new SolrQuery();
r = Mockito.mock(QueryResponse.class);
rGroup = Mockito.mock(QueryResponse.class);
Mockito.when(r.getResults()).thenReturn(docs);
Mockito.when(r.getGroupResponse()).thenReturn(null);
Mockito.when(rGroup.getResults()).thenReturn(docs);
Mockito.when(rGroup.getGroupResponse()).thenReturn(gresp);
// setup velocity engine
ve = new VelocityEngine();
ve.setProperty(VelocityEngine.RESOURCE_LOADER, "class");
ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
ve.init();
}
示例8: searchDocuments
import org.apache.solr.client.solrj.response.GroupCommand; //导入依赖的package包/类
@Override
public ResultsList<Document> searchDocuments(String term, int start, int rows, List<String> additionalFields,
List<String> filters) throws SearchEngineException {
ResultsList<Document> results;
try {
SolrQuery query = new SolrQuery(term);
query.setStart(start);
query.setRows(rows);
query.setRequestHandler(config.getDocumentRequestHandler());
List<String> queryFields = new ArrayList<>(DEFAULT_SEARCH_FIELDS);
if (additionalFields != null) {
queryFields.addAll(additionalFields);
}
if (filters != null) {
query.addFilterQuery(filters.toArray(new String[filters.size()]));
}
query.setParam(DisMaxParams.QF, queryFields.toArray(new String[queryFields.size()]));
LOGGER.debug("Query: {}", query);
QueryResponse response = server.query(query);
List<Document> docs;
long total = 0;
if (response.getGroupResponse() != null) {
docs = new ArrayList<>(rows);
GroupResponse gResponse = response.getGroupResponse();
for (GroupCommand gCommand : gResponse.getValues()) {
total += gCommand.getNGroups();
for (Group group : gCommand.getValues()) {
docs.addAll(server.getBinder().getBeans(Document.class, group.getResult()));
}
}
} else if (response.getResults().getNumFound() == 0) {
docs = new ArrayList<>();
} else {
docs = response.getBeans(Document.class);
total = response.getResults().getNumFound();
}
results = new ResultsList<>(docs, start, (start / rows), total);
} catch (SolrServerException | IOException e) {
throw new SearchEngineException(e);
}
return results;
}
示例9: searchDocuments
import org.apache.solr.client.solrj.response.GroupCommand; //导入依赖的package包/类
@Override
public ResultsList<Document> searchDocuments(String term, int start, int rows, List<String> additionalFields,
List<String> filters, FacetStyle facetStyle) throws SearchEngineException {
ResultsList<Document> results = null;
try {
SolrQuery query = new SolrQuery(term);
query.setStart(start);
query.setRows(rows);
query.setRequestHandler(config.getDocumentRequestHandler());
List<String> queryFields = new ArrayList<>(DEFAULT_SEARCH_FIELDS);
if (additionalFields != null) {
queryFields.addAll(additionalFields);
}
if (filters != null) {
query.addFilterQuery(filters.toArray(new String[0]));
}
query.setParam(DisMaxParams.QF, queryFields.toArray(new String[queryFields.size()]));
if (facetStyle == FacetStyle.NONE) {
query.addFacetField(config.getFacetFields().toArray(new String[config.getFacetFields().size()]));
} else {
// Add the facet tree params
query.setFacet(true);
query.setParam("facet.tree", true);
query.setParam("facet.tree.field", buildFacetTreeQueryParameter(facetStyle));
}
LOGGER.debug("Query: {}", query);
QueryResponse response = server.query(query);
List<Document> docs;
long total = 0;
if (response.getGroupResponse() != null) {
docs = new ArrayList<>(rows);
GroupResponse gResponse = response.getGroupResponse();
for (GroupCommand gCommand : gResponse.getValues()) {
total += gCommand.getNGroups();
for (Group group : gCommand.getValues()) {
docs.addAll(server.getBinder().getBeans(Document.class, group.getResult()));
}
}
} else if (response.getResults().getNumFound() == 0) {
docs = new ArrayList<>();
} else {
docs = response.getBeans(Document.class);
total = response.getResults().getNumFound();
}
results = new ResultsList<>(docs, start, (start / rows), total, extractFacets(response, facetStyle));
} catch (SolrServerException e) {
throw new SearchEngineException(e);
}
return results;
}