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 comfq=[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.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.
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