2011-12-10 5 views
0

J'ai fait une requête Solr de deux façonssolr priorité de requête

façon 1:

status = "envoyé" et nom d'hôte: "host.com" ET log_date: [2011-12-08T00: 00: 00Z 2011-12-08T23 A: 59: 59Z] Résultat: 328232

chemin 2:

nom d'hôte

: "host.com" ET log_date: [2011-12-08T00: 00: 00Z À 2011- 12-08T23: 59: 59Z] AND status = "envoyé" Résultat: 62359

J'ai vérifié par grep etc dans l'ensemble de données d'origine et a constaté que la deuxième manière de requête 2: donne le compte correct. Est-ce la façon dont la requête est censée être ou j'ai une requête malformée? Une autre question que j'ai est que je n'utilise solr que pour l'indexation et la recherche, donc est-il possible pour moi de dire à Solr en quelque sorte ne pas calculer le score et ne pas s'inquiéter de score lors du retour des résultats? cela va-t-il rendre les choses plus rapides pour moi?

+0

'status =" envoyé "' est une requête invalide; il devrait être 'statut: envoyé' –

Répondre

0

Je crois que vous devriez envisager d'utiliser Solr Filter Queries pour aider à limiter vos résultats. Je ne suis pas sûr de ce que votre requête principale serait et ce qui pourrait être passé en tant que requêtes de filtre que tous les champs de recherche actuels semblent être juste des filtres sur des valeurs de champ donnés. Alors, peut-être vous faire une requête en utilisant la log_date comme le principal terme de requête comme suit:

q=log_date:[2011-12-08T00:00:00Z TO 2011-12-08T23:59:59Z]&fq=status:"sent"&fq=hostname:"host.com" 

Vous voudrez peut-être suivre les conseils dans le lien wiki ci-dessus et combiner une partie ou toutes les valeurs de la requête de filtre. Dans la mesure où la question sur le score, AKAIK le score est toujours calculé par Solr comme il est utilisé pour retourner et classer les éléments pertinents dans l'index. Donc je ne pense pas qu'il soit possible de l'éteindre ou d'obtenir des performances en ne calculant pas le score. Vous ne pouvez pas spécifier le score en tant que champ à renvoyer si vous n'en avez pas besoin en changeant votre paramètre fl.

+0

merci paige et mauricio pour vos réponses, la syntaxe de la requête était incorrecte comme indiqué paige. – user1082214