Início > Solr > Busca de data null no Solr

Busca de data null no Solr

Estou a algumas semanas trabalhando em um projeto que tem o Solr como base de dados.
A minha lógica de negócio precisa que eu busque todos os novos clientes ou clientes que foram atualizados recentemente.
O schema do Solr tem duas colunas de data:

  • dw_createdate: Data de criação do cliente (not null)
  • dw_lastupdatedate: Data de atualização do cliente (null)

Ou seja, quando você cria um cliente, a data de atualização é nula. Quando esse cliente é atualizado, o campo dw_lastupdatedate deixa de ser nulo.

Nesse caso a busca ficou bem complexa, pois precisei buscar clientes aonde a data de criação estiver em um range e a data de atualização estiver no mesmo range ou for nula.
O site http://aaronbonner.io/post/25428518232/date-range-with-null-search-in-solr-4-x ajudou muito a entender como funciona a busca por data no Solr aonde o autor teve exatamente o mesmo problema.

A solução é trabalhar sempre com a negativa da data.

A solução final ficou assim:

http://domain.com/search/select?facet.field=dataEntityId&fl=*&
fq=dataEntityId:dataEntity_AE&
fq=instanceId:4729c4b8-3c60-41c8-857a-20501835373c&
fq=(-(-dw_lastupdatedate:[2013-02-26T00:00:01Z%20TO%20*]%20AND%20
dw_lastupdatedate:[*%20TO%20*]))%20OR%20
dw_createdate:[2013-02-13T12:13:52Z%20TO%20*]

E olha que essa query louca funciona direitinho.

Anúncios
Categorias:Solr
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: