Eu tenho um grande índice solr e notei que alguns campos não são atualizados corretamente (o índice é dinâmico).
Isso resultou em alguns campos com um campo "id" vazio.
Eu tentei essas consultas, mas não funcionaram:
id:''
id:NULL
id:null
id:""
id:
id:['' TO *]
Existe uma maneira de consultar campos vazios?
obrigado
?q=-id:*
obtiverCannot parse '-q:*': '*' or '?' not allowed as first character in WildcardQuery
?q=-id:*
parece funcionar conforme o esperado. Talvez o erro de análise esteja relacionado a esse problema .Lucene Specification Version: 3.2.0
que estava usando. Que bom que eles adicionaram a sintaxe no Solr 4.5.1.Uma advertência! Se você quiser redigir isso por meio de OR ou AND, não poderá usá-lo desta forma:
mas você deve usar
Esta forma é perfeitamente combinável. Aparentemente, o SOLR irá expandir a primeira forma para a segunda, mas apenas quando for um nó superior. Espero que você economize algum tempo!
fonte
De acordo com SolrQuerySyntax , você pode usar
q=-id:[* TO *]
.fonte
Se você tiver um índice grande, deve usar um valor padrão
e, em seguida, consulte esse valor padrão. Isso é muito mais eficiente do que q = -id: ["" TO *]
fonte
Você também pode usá-lo assim.
fonte
Se você estiver usando SolrSharp, ele não suporta consultas negativas.
Você precisa alterar QueryParameter.cs (Criar um novo parâmetro)
E na classe QueryParameterCollection.cs, a substituição ToString (), verifica se o parâmetro Negative é verdadeiro
Quando você chama o criador do parâmetro, se for um valor negativo. Simples mudança de propriedade
fonte
você pode fazer isso com a consulta de filtro q = *: * & fq = -id: *
fonte