Solr filtre de requête, y compris PAS et OU

Pour un filtre de requête dans Solr, j'ai besoin d'inclure tous les documents d'un certain type, en plus de tous les documents de ce type qui ont une valeur dans un certain domaine.

J'ai essayé ceci:

fq=(-type_id:(A) OR content:(['' TO *]))

Mais c'est l'exclusion des documents de type_id B, C, etc. qui ont la valeur null content. (type_id est un string champ et content est text.)

J'ai vu cette question: Complexe SOLR requête, y compris PAS et OU et ce post sur les opérateurs: http://robotlibrarian.billdueber.com/2011/12/solr-and-boolean-operators/. Je pense que la syntaxe que j'ai doit être correcte. N'importe qui peut voir mon erreur?


Mise à jour: je suis en utilisant le LuceneQParser. Il analyse le filtre de requête ci-dessus comme

-type_id:A content:['' TO *]

Il analyse la requête de filtre suggéré dans les commentaires (-type_id:A OR (content:[* TO *] AND type_id:A)) comme

-type_id:A (+content:[* TO *] +type_id:A)

donc pas de résultats.

  • que voulez-vous atteindre ?? type_id pas UN, OU tous les documents avec aucun contenu ou certains contenus ?
  • Voir la première phrase de ma question: pas de restriction sur des documents qui ne sont pas type_id=A; si elles sont type_id=A, ils devraient avoir une valeur non nulle de contenu. J'ai aussi essayé, par exemple, fq=((type_id:(A) AND content:(['' TO *])) OR type_id:(*)), mais toujours pas de chance.
  • Pouvez-vous essayer fq=-type_id:UN OU (contenu:[* À *] ET type_id:A)
  • J'ai essayé ta suggestion pour un filtre de requête; maintenant, je n'obtiens aucun résultat. Consultez l'analyseur de requête de l'info dans ma mise à jour de question.
InformationsquelleAutor Kimberly | 2013-05-24