当前位置:网站首页>SOLR Advanced Query Application - - Grouper les requêtes par champ
SOLR Advanced Query Application - - Grouper les requêtes par champ
2022-06-10 09:24:00 【Yangyang Vv】
Un.:solrInadminÉcrire l'instruction de requête de l'interface de gestion:
2.:GROPUParamètres
Trois:GroupÀ propos de FacetLimitParamètres:
Si ce n'est pas réglélimitEt si,La valeur par défaut renvoie Max100
//Juste pour toi.sorlqueryPlus cette façade est limitée à-1,Il n'y a pas de limite à la quantité.
SolrQuery queryArgs = new SolrQuery();
queryArgs.setFacetLimit(-1);
Quatre:javaRequêtesolrCodage de groupe:
package com.dss.solr.test;
import java.util.List;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.Group;
import org.apache.solr.client.solrj.response.GroupCommand;
import org.apache.solr.client.solrj.response.GroupResponse;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.GroupParams;
import com.dss.solr.server.SolrServer;
public class SolrGroupTest {
public static void queryGroup() throws Exception{
HttpSolrClient client = SolrServer.getSolrClient();
SolrQuery sQuery = new SolrQuery();
// Activer la fonction de regroupement
sQuery.setParam(GroupParams.GROUP, true);
// Définir pour effectuer groupGroupefield, Si plusieurs FieldGroupe, Définir plusieurs Field,Comme suit
sQuery.setParam(GroupParams.GROUP_FIELD, "brand_s");
//sQuery.setParam(GroupParams.GROUP_FIELD, "brand_s","subMajor_s");
// Définir le nombre maximum d'enregistrements retournés par groupe (Par défaut1), Si seulement le nombre de groupes est requis ,Peut être réglé à0
sQuery.setParam(GroupParams.GROUP_LIMIT, "5");
// Définissez le nombre de données retournées dans chaque groupe à partir de (Par défaut0),CollocationGroupParams.GROUP_LIMIT La pagination intragroupe est possible
sQuery.setParam(GroupParams.GROUP_OFFSET, "0");
// Renvoie le nombre total de groupes
sQuery.setParam(GroupParams.GROUP_TOTAL_COUNT, true);
// Configuration intragroupe FieldTrier
sQuery.setParam(GroupParams.GROUP_SORT, "id desc");
//Configuration des composantsFieldTrier
sQuery.setParam(CommonParams.SORT, "id desc");
//Solr Par défaut, chaque requête est pagée :startPour0,rowsPour10. C'est - à - dire retourner les dix premiers enregistrements . Dans de nombreux cas, ce résultat est suffisant , Si les exigences opérationnelles ne sont pas respectées , Vous devez afficher les paramètres de pagination spécifiés .
//Ici.startEtrows Pagination des composants utilisateurs , C'est - à - dire combien de groupes de données sont affichés à la fois
sQuery.setStart(0);
//Ici.rows Définit le nombre de données retournées par page , Si vous voulez retourner tout en même temps ,Peut être réglé directementInteger.MAX_VALUE
sQuery.setRows(10);
// Vous pouvez définir ce que vous voulez retourner Field
sQuery.setParam(CommonParams.FL, "id,title_s,brand_s,subMajor_s");
sQuery.setQuery("*:*");
QueryResponse queryResponse = client.query(sQuery, SolrRequest.METHOD.POST);
GroupResponse groupResponse = queryResponse.getGroupResponse();
if(groupResponse != null) {
/** * Réglage de plusieursFieldGroupe,Etvalues.sizeC'est combien? */
List<GroupCommand> values = groupResponse.getValues();
if(values != null) {
System.out.println("values.size()======" + values.size());
for(GroupCommand value : values) {
/** * value.getName()== Actuellement groupé FieldNom de * value.getNGroups()== Actuellement groupé Field Nombre total de groupes pour */
System.out.println(value.getName() + "=======" + value.getNGroups());
List<Group> groups = value.getValues();
if(groups != null) {
for(Group group : groups) {
System.out.println(group.getGroupValue());
System.out.println("=======");
/** * group.getResult() Indique le nombre d'enregistrements de données pour le Groupe actuel , Si elle est configurée ci - dessus GroupParams.GROUP_LIMIT==0,Oui.null */
SolrDocumentList result = group.getResult();
System.out.println("resultNumFound=====" + result.getNumFound());
if(result != null) {
for(SolrDocument item : result) {
/** * itemC'estsolr Données pour chaque index dans */
System.out.println(item);
}
}
}
}
}
}
}
}
public static void main(String[] args) throws Exception {
queryGroup();
}
}
Vous pouvez également obtenir queryResponse.getGroupResponse() Passer ensuite à la méthode suivante pour effectuer une analyse des données :
Convertir enJSONArrayTraitement des données,size Est le nombre total de données de ce groupe .
边栏推荐
猜你喜欢

How to Spot-Check Regression Algorithms

Textstudio displays line numbers and does not check spelling settings

Printk learning II: debugging

LeetCode琅琊榜第十八层-两数之和(查找表法)

对C语言指针强转的理解

Message queue selection manual

How to hide application previews when switching applications while using shutter

Deploy MySQL based on statefulset in kubernetes (Part 2)

谈谈数字化转型方法|正确认识数字化转型

阿里巴巴数字化转型的启示
随机推荐
BlockingQueue、SynchronousQueue、ArrayBlockingQueue、ReentrantLock、Semaphore、公平与非公平
Enlightenment from Alibaba's digital transformation
Linear Regression
LeetCode琅琊榜第二十层-二进制求和
Cache用法小结
Compile-PL/0语言编译器功能扩充
文件如上图所示,怎么用navicat打开一个数据库文件
MainActivity
Linear Regression
How to Understand Your Data With Visualization
稀疏性(sparse)知识点
在 Kubernetes 中基于 StatefulSet 部署 MySQL(下)
Formula Derivation
Method of adding status bar in MFC window
No module named ‘pyautogui‘
Principal Component Analysis
GNSS定位资料收集
Preempt count in interrupt context
Leetcode level 19 - valid parentheses
Summary of cache usage