Como filtrar a pesquisa no solr por data?

na minha SOLR existe o campo Data (published_date) e os valores estão neste formato "2012-09-26T10: 08: 09.123 Z"

Como posso procurar por dados simples como" 2012-09-10 " em vez do formato de data ISO completo.

É possível em SOLR?Eu tentei com

fq=[2012-09-24%20TO%20NOW]

deve regressar filtrando resultados superiores à data publicada de 2012-09-24 e inferiores a agora.

mas devolve os dados com a data publicada com 2012-09-23, como em baixo

<float name="score">2.8183863</float>
<str name="name">Local Team Inspires Obama</str>
<date name="published_date">2012-09-23T07:44:53.123Z</date>

Am Perdi alguma coisa?

Obrigado antecipadamente.

 12
Author: Khriz, 2012-10-19

2 answers

Se quiser obter publicações da semana passada, pode fazer algo do género:

&fq=published_date:[NOW-7DAY/DAY TO NOW]

Mas se quiser uma data concreta, deve fazê-lo no formato de data SOLR:

&fq=published_date:[2013-07-17T00:00:00Z TO NOW]
Espero que isso ajude.
 30
Author: Khriz, 2013-07-24 15:31:11

A forma mais simples de Solr date é a palavra-chave 'NOW' que se refere à data e hora actuais. É sensível a maiúsculas em Solr, mas o analisador de consulta lúcido permitirá que seja em qualquer caso. "NOW" pode ser usado se nenhuma data explícita ou matemática de data for especificada, ou pode ser usado se a matemática de data for especificada sem uma data explícita.

Uma data explícita é escrita em Solr usando um formato baseado na ISO 8601, que consiste numa cadeia do formulário yyyy-mm-ddThh: mm: ss.mmmZ, em que "yyyy" é o ano de quatro dígitos, o primeiro, mm é o mês com dois dígitos, " dd " é o dia de dois dígitos, 'T' é obrigatório literal, a letra " T "para indicar que o tempo segue," hh " é o de dois dígitos horas ('00' até '23'), o segundo 'mm' é o de dois dígitos de minutos ('00' até '59'), 'ss' é o de dois dígitos para os segundos ('00' até '59'), opcionalmente '.mmm ' são os milisegundos de três dígitos precedidos por um período, E 'Z' é a letra literal obrigatória 'Z' para indicar que a hora é UTC ('Zulu'). A segunda parcela, incluindo o seu período inicial, é opcional. Zeros finais não são necessários para milisegundos.

For example:

    2008-01-01T00:00:00Z

    2008-01-01T00:00:00

    2008-01-01T00:00 same as [2008-01-01T00:00:00Z TO 2008-01-01T00:00:59Z]

    2008-01-01T00: same as [2008-01-01T00:00:00Z TO 2008-01-01T00:59:59Z]

    2008-01-01T same as [2008-01-01T00:00:00Z TO 2008-01-01T23:59:59Z]

    2008-01-01 same as [2008-01-01T00:00:00Z TO 2008-01-01T23:59:59Z]

    2008-01 same as [2008-01-01T00:00:00Z TO 2008-01-31T23:59:59Z]

    2008 same as [2008-01-01T00:00:00Z TO 2008-12-31T23:59:59Z]
Documentação
 9
Author: Ahmed Salem, 2015-04-07 09:38:53