Как указать запрос фасета даты в Solr? - PullRequest
3 голосов
/ 01 февраля 2011

Когда я делаю запрос к Solr, я получаю эти facet_counts обратно:

'facet_counts' => {
    'facet_dates' => {
        'photo_added' => {
            '2009-12-28T18:00:00Z' => 396386,
            '2010-05-28T18:00:00Z' => 415370,
            'gap' => '+1MONTH',
            'end' => '2011-02-28T18:00:00Z',
        },
    },
},

Однако, когда я добавляю любой из этих параметров в q=*:* запрос:

fq=photo_added:2009-12-28T18:00:00Z
fq=photo_added:2009-12-28T18%3A00%3A00Z

Я получаю это как ответ:

HTTP ERROR 400: Invalid Date String:'2009-12-28T18'

Когда я добавляю любой из этих параметров к запросу q=*:*:

fq=photo_added:"2009-12-28T18:00:00Z"
fq=photo_added:"2009-12-28T18%3A00%3A00Z"
fq%3Dphoto_added%3A%222009-12-28T18%3A00%3A00Z%22
fq=photo_added%3A"2009-12-28T18%3A00%3A00Z"

Я получаю это в ответе:

<result name="response" numFound="0" start="0"/>

Но когда у меня нет ограничения fq= на мой запрос, я получаю numFound="8001000", поэтомуопределенно что-то не так с ограничением fq=.

Как выполнить работающий запрос фасета даты?

1 Ответ

5 голосов
/ 01 февраля 2011

Я думаю, вы неверно истолковали результаты побочных эффектов. IIRC, поскольку вы определили разрыв в 1 месяц, результат '2009-12-28T18:00:00Z' => 396386 означает, что между 2009-12-28T18: 00ZZ и 2010-01-28T18: 00: 00Z (один месяц) получено 396386 результатов.

Но затем вы выполняете запрос фильтра с точной датой, и вы не получаете результатов, потому что ни один документ не соответствует точно этой дате и времени. Если вы хотите получить эти 396386 документов, выполните запрос фильтра с диапазоном между датами, которые я упомянул выше: fq=photo_added:[2009-12-28T18:00:00Z TO 2010-01-28T18:00:00Z]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...