查询:
rang:[16-03-08 TO 16-04-08]
我正在使用standard tokenizer and lower case filter
作为名称字段。字段类型为text
。
由于它是标准的令牌生成器,因此16-03-08
将被令牌化为16
,03
,08
,与其他16
,04
类似,08
范围查询如何工作?
答案 0 :(得分:0)
这是我用来说明的示例数据。
{
"id":"1",
"RangeField":"16-03-08",
"DateField" :"2018-11-21"
},
{
"id":"2",
"RangeField":"16-04-08",
"DateField" :"2019-01-11"
},
{
"id":"3",
"RangeField":"16-06-08",
"DateField" :"2019-04-19"
},
{
"id":"4",
"RangeField":"16-07-08",
"DateField" :"2019-08-24"
},
{
"id":"5",
"RangeField":"16-08-08",
"DateField" :"2019-11-29"
}
以下是schema.xml
<field name="RangeField" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="DateField" type="date" indexed="true" stored="true" multiValued="false"/>
这是执行的查询
http://localhost:8983/solr/TestDemo4/select?fl=RangeField,DateField&q=RangeField:[16-03-08%20TO%2016-06-08]
请参阅屏幕截图以获取答复。
这是日期字段上的第二个查询。
http://localhost:8983/solr/TestDemo4/select?fl=RangeField,DateField&q=DateField:[2018-11-08T00:00:00Z%20TO%202019-08-30T23:59:59Z]
请参阅屏幕截图以获取答复。
如果您有数字数据,请使用int作为字段类型,而不是字符串,这样在排序时就不会产生任何问题。