J'ai une liste d'éléments comme: maintenant, chaque élément de Je veux réduire le résultat dans lequel les informations de prix sont quelque chose comme p> Comment cela peut-il être fait? p> p> i code> a un attribut,
prix code> p >
5 Réponses :
Selon le SOLRQUERYSYNTAX P>
Quères négatives pures: P>
Vous pouvez essayer: p>
-Field: [* à *] code> trouve tous les documents sans valeur pour le champ P>
q = (*: * -Price: [* à *]) ou Price: [300 à 400] code> p> p>
Il ne me donne toujours pas d'articles avec des prix compris entre 300 et 400
Quel est le type de prix de terrain? Sint ?? ou chaîne / texte?
Le champ de prix est décimal (flotteur)
Comment votre requête regarde-t-elle maintenant? Pouvez-vous mettre à jour votre question?
je ne comprends pas. Je veux que le prix tombe dans une plage particulière et ceux sans valeurs. Je ne connais pas la requête pour ça
Mettez à jour la réponse avec la requête. Ceci est testé et fonctionne bien.
Pouvez-vous s'il vous plaît me donner comment écrire à l'intérieur Narrow code>
Pas sûr de ça. Vous pouvez coller comme dans l'étroit sans q = partie.
On peut utiliser une requête de filtre code> si vous ne vous souciez pas du score de document et souhaitez tirer parti du cache du filtre, comme:
?q=*:*&fq=((-price:[* TO *]) or (price:[300 TO 400]))
Cojocaru, pouvez-vous donner la requête dans modèles (élément) .Filter code> .. Formulaire. Je suis vraiment nouveau à Solr et je ne suis pas capable de convertir votre code en ce formulaire
Essayez quelque chose comme ces modèles (article) .Filter_or (Prix = Aucune, Prix__Range = [300, 400]) Basé sur github.com/soby/django-haystack/commit/... Pour des valeurs vides Il faut utiliser aucun
Essayez ceci:
-(-price:[300 TO 400] AND price:[* TO *])
pourquoi ~ et` pas ou code> s'il fonctionne pour les deux
et code> et
ou code>, je me demande pourquoi
Je ne pense pas que cela fonctionne avec ou. Regardez ce lien:
L'objectif était de trier certains éléments par marquage en fonction d'un boostting par type et plus si un type de vélo a une image. Le résultat devrait être: p>
C'était ma première approche de requête:
Mais j'ai oublié d'anciens articles de données sans le champ de type. Le devrait être dans le résultat défini comme celui-ci: p>
Alors j'ai changé ma requête en Alors j'ai trouvé ce fil et essayé de changer ma requête en Mais malheureusement, tous les articles ont le même score: ( p> Type: "voiture" ^ 10000 ou type: "Bateau" ^ 5000 ou (type: "Vélo" et type d'image: [* à *]) ^ 100 ou type: "Vélo" ^ 5 Code> (fonctionne bien) p>
-Type: [* à *] ou Type: "voiture" ^ 10000 ou type: "Bateau" ^ 5000 ou (type: "Vélo" et type d'image: [* À *]) ^ 100 ou type: "vélo" ^ 5 code> et fini sans résultat. P>
- (type: [* à *] ou -Type: "voiture" ^ 10000 ou -Type: "Bateau" ^ 5000 ou - (Type: "Vélo" et type d'image: [* à *]) ^ 100 ou -TYPE: "Vélo" ^ 5 code>) Comme indiqué dans cette réponse https://stackoverflow.com/a/17211744/326905 p>
La requête double négative suggérée par Maurizio peut provoquer une erreur: (même après la réindexation. Cela peut avoir quelque chose à voir avec l'index code> < code> Store code> et Ce que vous pourriez faire à la place est exempté les deux gammes (avant et après) des valeurs que vous êtes réellement intéressé Dans: p> Notez que les valeurs 300 et 400 sont exclues à l'aide des supports bouclés dans cette requête annulée et sont donc incluses dans les résultats de la recherche. P> P> docvalues code> Paramètres du champ.) p>
Je me demande si Cette syntaxe pourrait fonctionner?
@ Martijnpieters que la syntaxe a fonctionné séparément, mais pas avec ou. J'ai mis à jour ma question