在 Cloudant 的 Lucene 查询字符串中搜索日期和时间
Searching date and time in Lucene query string in Cloudant
我正在尝试编写索引并使用 Cloudant NoSql 数据库中该索引中的日期和时间进行搜索。
当我只传递查询字符串中的日期时,它工作正常
created_date:[2015-08-16 TO 2015-08-27]
这是 returns 正确的结果,但是当我在参数中包含时间时:
created_date:[2015-08-16 07:38:00 TO 2015-08-27 07:38:02]
我收到一个错误:
Cannot parse 'created_date:[2015-08-16 07:38:00 TO 2015-08-27 07:38:02]': Encountered " "TO" "TO "" at line 1, column 50. Was expecting one of: "]" ... "}"
在此之前我还有一些查询参数,但以上是错误的要点。
这是 Apache Lucene 查询字符串。是什么导致了这种情况?
根据 Lucene Java 文档,日期格式应如下所示:
A date field shall be of the form 1995-12-31T23:59:59Z The trailing
"Z" designates UTC time and is mandatory
This format was derived to be standards compliant (ISO 8601) and is a
more restricted form of the canonical representation of dateTime from
XML schema part 2. Examples...
1995-12-31T23:59:59Z 1995-12-31T23:59:59.9Z 1995-12-31T23:59:59.99Z
1995-12-31T23:59:59.999Z
因此,您在日期和时间之间错过了 'T'。
更多信息:https://lucene.apache.org/solr/4_10_4/solr-core/org/apache/solr/schema/DateField.html
我是按照下面的方法做的
created_date:["2015-08-16 07:38:00" TO "2015-08-27 07:38:02"]
并使用了 cloudant 中的关键字分析器
这个link说明了一切
https://lucene.apache.org/core/2_9_4/queryparsersyntax.html
我正在尝试编写索引并使用 Cloudant NoSql 数据库中该索引中的日期和时间进行搜索。 当我只传递查询字符串中的日期时,它工作正常
created_date:[2015-08-16 TO 2015-08-27]
这是 returns 正确的结果,但是当我在参数中包含时间时:
created_date:[2015-08-16 07:38:00 TO 2015-08-27 07:38:02]
我收到一个错误:
Cannot parse 'created_date:[2015-08-16 07:38:00 TO 2015-08-27 07:38:02]': Encountered " "TO" "TO "" at line 1, column 50. Was expecting one of: "]" ... "}"
在此之前我还有一些查询参数,但以上是错误的要点。
这是 Apache Lucene 查询字符串。是什么导致了这种情况?
根据 Lucene Java 文档,日期格式应如下所示:
A date field shall be of the form 1995-12-31T23:59:59Z The trailing "Z" designates UTC time and is mandatory
This format was derived to be standards compliant (ISO 8601) and is a more restricted form of the canonical representation of dateTime from XML schema part 2. Examples...
1995-12-31T23:59:59Z 1995-12-31T23:59:59.9Z 1995-12-31T23:59:59.99Z 1995-12-31T23:59:59.999Z
因此,您在日期和时间之间错过了 'T'。
更多信息:https://lucene.apache.org/solr/4_10_4/solr-core/org/apache/solr/schema/DateField.html
我是按照下面的方法做的
created_date:["2015-08-16 07:38:00" TO "2015-08-27 07:38:02"]
并使用了 cloudant 中的关键字分析器
这个link说明了一切 https://lucene.apache.org/core/2_9_4/queryparsersyntax.html