J'ai un gros index solr, et j'ai remarqué que certains champs ne sont pas mis à jour correctement (l'index est dynamique).
Cela a abouti à certains champs ayant un champ "id" vide.
J'ai essayé ces requêtes, mais elles n'ont pas fonctionné:
id:''
id:NULL
id:null
id:""
id:
id:['' TO *]
Existe-t-il un moyen d'interroger les champs vides?
Merci
?q=-id:*
obtenezCannot parse '-q:*': '*' or '?' not allowed as first character in WildcardQuery
?q=-id:*
semble fonctionner comme prévu. Peut-être que l'erreur d'analyse est liée à ce problème .Lucene Specification Version: 3.2.0
j'utilisais. Heureux d'avoir ajouté la syntaxe de Solr 4.5.1.Une mise en garde! Si vous souhaitez composer ceci via OU ou ET vous ne pouvez pas l'utiliser sous cette forme:
mais vous devez utiliser
Cette forme est parfaitement composable. Apparemment, SOLR étendra la première forme à la seconde, mais uniquement lorsqu'il s'agit d'un nœud supérieur. J'espère que cela vous fera gagner du temps!
la source
Selon SolrQuerySyntax , vous pouvez utiliser
q=-id:[* TO *]
.la source
Si vous avez un index volumineux, vous devez utiliser une valeur par défaut
puis interrogez cette valeur par défaut. C'est beaucoup plus efficace que q = -id: ["" TO *]
la source
Vous pouvez également l'utiliser comme ça.
la source
Si vous utilisez SolrSharp, il ne prend pas en charge les requêtes négatives.
Vous devez modifier QueryParameter.cs (créer un nouveau paramètre)
Et dans la classe QueryParameterCollection.cs, le remplacement ToString () vérifie si le paramètre Negative est vrai
Lorsque vous appelez le créateur du paramètre, s'il s'agit d'une valeur négative. Changez simplement la propriété
la source
vous pouvez le faire avec la requête de filtre q = *: * & fq = -id: *
la source