проверьте запрос фасета solr, если он больше определенного значения даты и времени

У меня есть следующее в solr

<str name="id">2</str>
<arr name="parsed">
    <str>2011-11-01 13:40:08.0</str>
</arr>
<arr name="person">
    <str>Harsh Snehanshu | Apoorv Jain</str>
</arr>

теперь, если я хочу найти jain, я просто воспользуюсь этим запросом

http://192.168.1.135:8888/solr/MyCol/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on&facet=true&fq=person:jain

теперь вопрос: как я могу искать записи, которые были проанализированы ПОСЛЕ (больше) 2011-11-01 13:00:00 или (между 2011-11-01 12:30:00 и 2011-11 -01 13:30:00)??
Спасибо за помощь


person Alaa    schedule 02.11.2011    source источник


Ответы (2)


Анализируемое поле должно быть определено как поле даты.

e.g.

схема.xml -

Должен быть доступен тип поля TrieDateField -

<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>

Сопоставьте поле prased с типом поля tdate как -

<field name="parsed" type="tdate" indexed="true" stored="true"/>

Итак, при индексации ответ будет выглядеть как <date name="parsed">2009-04-28T00:00:00Z</date>

Это позволит вам использовать запросы фильтра даты для поля даты.

e.g. fq=parsed:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]

Также для поиска лучше использовать q=person:jain.
Используйте запросы-фильтры для ограничения документов, а не для поиска.

person Jayendra    schedule 02.11.2011
comment
Пожалуйста, извините мои ограниченные знания в solr: я добавил ‹field indexed=true multiValued=true name=parsed omitNorms=false Stored=true type=datefield/›, но это дает мне неизвестный тип поля 'datefield', указанный в проанализированном поле, что является правильным синтаксис?? Благодарность - person Alaa; 02.11.2011
comment
:( Я тестирую 100 документов (просто в качестве теста)... теперь, после добавления именно того, что вы сказали мне выше.. я получил: ‹str name=> Индексирование завершено. Добавлено/обновлено: 0 документов. Удалено 0 документов. ‹/str› ‹str name=Total Documents Failed›100‹/str› Спасибо - person Alaa; 02.11.2011
comment
какое исключение во время индексации? - person Jayendra; 02.11.2011
comment
я отредактировал вопрос, чтобы включить ответ, так как он больше, чем лимит комментариев - person Alaa; 02.11.2011
comment
можете ли вы проверить журналы tomcat/jetty, которые покажут вам исключение. - person Jayendra; 02.11.2011

Эти параметры запроса должны работать (не проверены и URL не экранированы)

facet.field=parsed
f.parsed.facet.range.start=2011-11-01T12:30:00Z
f.parsed.facet.range.end=2011-11-01T13:30:00Z

Объяснение:

  • facet.field=parsed включает фасетирование в поле parsed.
  • f.parsed.facet.range.start/end определите нижнюю и верхнюю границу для этого поля.
  • Даты должны быть в формате ISO 8601, но также разрешены «математические выражения дат», такие как NOW+1YEAR.

Дополнительные сведения см. в разделе Фацет по диапазону в документации Solr. Детали.

person Daniel Rikowski    schedule 02.11.2011