我希望在solr中获得一段时间的记录
我的网址是
http://localhost:8090/solr/select?q=xyz=Vehicles per KM of record Road&version=2.2&start=0&rows=200&indent=on&omitHeader=true&wt=json&sort=timestamp desc
我的回答是
{
"response": {
"numFound": 4,
"start": 0,
"docs": [
{
"xyz": "some record one",
"ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2",
"timestamp": "2014-11-07T10:41:29.544Z",
"id": [
"e1d1865-1402-ef20-6880-9262d6e7d22"
]
},
{
"xyz": "some record two",
"ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2",
"timestamp": "2014-11-06T10:34:53.799Z",
"id": [
"99eab5aa-c83b-e90b-e548-6d09e94c9ba2"
]
},
{
"xyz": "some record three",
"ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2",
"timestamp": "2014-11-03T09:05:45.521Z",
"id": [
"84fba82a-2ae6-eaa8-1b37-79c842c9e96"
]
},
{
"xyz": "some record four",
"ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2",
"timestamp": "2014-11-01T09:05:45.521Z",
"id": [
"84fba82a-2ae6-eaa8-1b37-79c842c9e96"
]
}
]
}
}
我遇到了一些问题
1.我的搜索查询句子是"车辆每KM的记录道路"。 但我得到的记录并不存在。
它假设只有一个记录
{
"xyz": "Vehicles per KM of record Road",
"ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2",
"timestamp": "2014-11-01T09:05:45.521Z",
"id": [
"84fba82a-2ae6-eaa8-1b37-79c842c9e96"
]
}
2.我想获得特定时期的记录 例如2014-11-08至2014-11-05
在这种情况下,只应该有两个记录
{
"xyz": "some record one",
"ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2",
"timestamp": "2014-11-07",
"id": [
"e1d1865-1402-ef20-6880-9262d6e7d22"
]
},
{
"xyz": "some record two",
"ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2",
"timestamp": "2014-11-06",
"id": [
"99eab5aa-c83b-e90b-e548-6d09e94c9ba2"
]
}
但我得到了所有记录 请帮帮我
答案 0 :(得分:1)
根据字段类型,第二个问题应该是日期间隔过滤器(只要它的日期字段..虽然它可能也适用于字符串字段):
timestamp:[2014-11-05 TO 2014-11-09]
您可能需要调整这些值以获得正确的截止(但我认为11-09应该是2014-11-09 00:00:00,这意味着只应包括早于该日期的条目)。
对于第一部分,它取决于您的查询解析器。如果解析器为dismax
,则mm
子句和默认布尔运算符将确定搜索的完成方式。您不希望xyz=
存在,除非您正在搜索的数据(在特定字段中搜索将是field:
)。
使用Solr管理中的分析页面查看您为什么不匹配您正在寻找的内容(输入索引的内容和搜索字符串,这可以让您更详细地了解Solr是什么为每个步骤做内部工作)。