Solr8.0.0 дата поиска проблема - PullRequest
0 голосов
/ 18 апреля 2019

У меня проблема при поиске в поле Дата date_upload

В моем файле схемы есть следующая запись для поля ДАТА

<field name="date_upload" type="pdate" indexed="true" stored="true"/>

В моем data-config.xml есть следующая запись -

<dataConfig>
<dataSource type="JdbcDataSource"
            driver="com.mysql.jdbc.Driver"
            batchSize="-1"
            autoReconnect="true"
            socketTimeout="0"
            connectTimeout="0"
            encoding="UTF-8"
            url="jdbc:mysql://xxx.xxx.xxx.xx:3306/news?zeroDateTimeBehavior=convertToNull"
            user="admin"
            password="admin"/>
<document>
<!--<entity name="news10" query="select * from news10"
            deltaQuery="select posting_id from item where last_modified > '${dataimporter.last_index_time}'"> 
</entity>-->
<entity name="news10" pk="posting_id"
  query="SELECT * FROM news10"
  deltaImportQuery="SELECT * FROM news10
    WHERE posting_id = '${dataimporter.delta.posting_id}'"
  deltaQuery="SELECT posting_id FROM news10
    WHERE last_modified > '${dataimporter.last_index_time}'">
</entity>
</document>
</dataConfig>

Следующие не работают -
fq = date_upload: NOW (не работает)
http://localhost:8983/solr/Nlive/select?fq=date_c%3ANOW&q=%3A

fq = date_upload:NOW-1DAY (не работает)
fq = date_upload: (NOW-30DAYS) (не работает)

fq = date_upload: [2018-12-01T: 00: 00: 00Z до 2019-04-17T00: 00: 00Z] (не работает)

"msg":"Invalid Date in Date Math String:'2018-12-01T:00:00:00Z'",

fq = date_upload: [2018-12-01TO 2019-04-17] Дает следующую ошибку

{
  "responseHeader":{
    "status":400,
    "QTime":1,
    "params":{
      "q":"*:*",
      "fq":"date_upload:[2018-12-01 TO 2019-04-17]",
      "_":"1555386354522"}},
  "error":{
    "metadata":[
      "error-class","org.apache.solr.common.SolrException",
      "root-error-class","org.apache.solr.common.SolrException"],
    "msg":"Invalid Date String:'2018-12-01'",
    "code":400}}

Однако они дают результаты -
fq = date_upload: [* TO NOW]
http://localhost:8983/solr/Nlive/select??fq=date_c%3A%5B%20TO%20NOW%5D&q=%3A*

1 Ответ

0 голосов
/ 20 апреля 2019

Ошибка пытается сообщить вам, что 2018-12-01T:00:00:00Z является недопустимой отметкой времени - это так.Там есть еще :, который должен быть там:

2018-12-01T:00:00:00Z
           ^

Используя правильную форму, 2018-12-01T00:00:00Z должен работать так, как вы ожидаете (и это то, что вы использовали в качестве конца диапазона).

В других ваших примерах fq=date_upload:NOW-1DAY говорит: «Дайте мне какие-либо документы, где отметка даты и времени ровно один день назад в эту миллисекунду».Это, вероятно, не даст вам никаких документов.В этих случаях вы также хотите использовать диапазон, например [NOW-1DAY TO *]

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