我在查找日期属于我在查询中指定的范围内的文档时遇到了麻烦。
架构配置如下
<field name="dates" type="rdates" stored="true" />
<fieldType name="rdates" class="solr.DateRangeField" multiValued="true" />
这些是我在Solr
中编入索引的文件查询:q=dates:*
{
"responseHeader":{
"params":{
"q":"dates:*",
"_":"1518809837624"}},
"response":{"numFound":2,"start":0,"docs":[
{
"id":1,
"dates":["[2015-12-31 TO 2016-01-01]"],
"_version_":1592586045307748352},
{
"id":2,
"dates":["[2015 TO 2017]",
"[2013 TO 2015]"],
"_version_":1592595675256717312}]
}}
这些是符合用户查询的文档:
查询:fq={!field f=dates op=Within}[2012 TO 2016]&q=dates:*
{
"responseHeader":{
"params":{
"q":"*:*",
"fq":"{!field f=dates op=Within}[2012 TO 2016]",
"_":"1518808413748"}},
"response":{"numFound":1,"start":0,"docs":[
{
"id":1,
"dates":["[2015-12-31 TO 2016-01-01]"],
"_version_":1592586045307748352}]
}}
据我了解,鉴于日期字段中的一个值与我的查询匹配,ID为2的文档应该匹配。
确实,将文档ID = 2更改为在日期字段中只有值[2013 TO 2015]
,它与我的查询匹配。
查询:fq={!field f=dates op=Within}[2012 TO 2016]&q=dates:*
{
"responseHeader":{
"params":{
"q":"dates:*",
"fq":"{!field f=dates op=Within}[2012 TO 2016]",
"_":"1518808413748"}},
"response":{"numFound":2,"start":0,"docs":[
{
"id":1,
"dates":["[2015-12-31 TO 2016-01-01]"],
"_version_":1592586045307748352},
{
"id":2,
"dates":["[2013 TO 2015]"],
"_version_":1592597631061721088}]
}}
我应该如何查询属于查询指定范围的文档?
答案 0 :(得分:0)
相同的代码和配置,不同的日子,它工作
我认为我的电脑不想在周五下午工作。