2014-08-27 10 views
0

Input and Output Datarequête solr - ont besoin d'aide solr écrit requête

Les données d'entrée (tableau de gauche) contient trois colonnes à savoir date, le type d'entretien et de numéro de client. Les deux tables de droite sont des exemples de sortie de requête Solr pour une plage de temps différente.

J'ai besoin de trouver le nombre de clients qui appartiennent à l'une des catégories suivantes: 1 service payant, 2 services payants, 3 services payants ... n Service payant pour une période différente. 2 Les sorties d'échantillons sont indiquées sur le côté droit. L'identifiant du client est également écrit à côté de la sortie pour une meilleure compréhension, mais l'identifiant du client ne fait pas partie de la sortie réelle.

La requête Solr peut utiliser une plage de dates pour sélectionner des lignes pour un mois différent.

Comment atteindre la sortie donnée. Dois-je ajouter une colonne dérivée aux données d'entrée qui seront utilisées dans cette requête complexe?

  1. Est-ce que Solr UDF va aider dans ce cas?

Répondre

0

Je ne suis pas sûr à 100% de ce que vous demandez ici. Des exemples de données seraient très utiles. Cependant, il semble que vous puissiez faire ce que vous recherchez avec les facettes et/ou facet.pivot. Vous devriez être en mesure d'exécuter un filtre fq sur la plage de dates qui vous intéresse, puis obtenir un pivot de facette pour les clients/factures ou les factures/clients.

+0

Merci pour votre réponse. Je viens d'éditer ci-dessus pour donner plus de clarté: - "Calculer le nombre de clients qui tombent dans l'une de ces catégories - 1 service payant, 2 service payant, 3 service payant ... n Service payant pour une période de temps différente." L'image ci-dessus montre des exemples de données. –

+0

@RohitSarewar À quoi ressemblent vos données dans Solr? – user2630270

+0

J'ai partagé des données exactes dans l'image ci-dessus. En dehors de cela, j'ai besoin de comprendre exactement ce que vous demandez 1) Mêmes données dans CSV et Schema.xml - de sorte que vous pouvez reproduire ce scénario 2) Capture d'écran de mon interface utilisateur Solr montrant les mêmes données. Répondez, s'il vous plaît. –

0

Je suppose que vous pouvez utiliser la facette SOLR pour obtenir le résultat souhaité. Vous pouvez utiliser facet.query avec champ de facette quelque chose comme

facet.query=date:['Start date' TO 'End Date']&facet.field=customerId 

et cela vous donnera des résultats similaires.

Vous pouvez utiliser facet.limit pour restreindre le nombre de résultats.

+0

Merci pour la réponse. Mais nous devons également considérer le type de service (payant ou gratuit). –

+0

Rohit, Si j'ai compris votre question, le type de service peut également faire partie de facet.query comme requête solaire normale. – Ash