如何在solr中存储日期范围?
我需要存储开始日期和结束日期。
让我们说它是一个别墅,在一段时期(开始和结束)出租。
我必须使用两个字段吗?
在搜索中,用户可以选择开始日期和结束日期,所以在查询solr时我想我可以使用类似的东西:
date:[$start TO $end]
但是这只查询一个字段,这很好,但存储日期范围是我的问题。
Hmmmmm。
任何帮助?
由于
答案 0 :(得分:6)
是的,你需要两个字段。
然后查询必须在两个字段上。
示例:
dateFrom:[$start TO $end] AND dateTo:[$start TO $end]
这意味着对象的时间跨度必须完全落在您搜索的时间范围内(例如,对象是1950-1960,而您搜索的是1900-2000)。
如果你只是需要对象的时间跨度的任何部分落在搜索的时间范围内(在你的情况下似乎很可能),例如:
dateFrom:[* TO $end] AND dateTo:[$start TO *]
即。对象的时间跨度必须在搜索时间跨度结束之前开始,并且对象的时间跨度必须在搜索时间跨度开始后结束。这将找到一个1900-2000的对象,搜索1950-1960。