如何在 solr 中存储日期范围?
我需要存储开始日期和结束日期。
假设这是一个在一段时间内(开始和结束)出租的别墅。
我必须使用两个字段吗?
在搜索中,用户可能会选择开始日期和结束日期,所以在查询 solr 时,我想我可以使用类似的东西:
date:[$start TO $end]
但这只查询一个字段,这很好,但存储日期范围是我的问题。
嗯嗯。
有什么帮助吗?
谢谢
最佳答案
是的,您需要两个字段。
查询将必须在两个字段上进行。
例子:
dateFrom:[$start TO $end] AND dateTo:[$start TO $end]
这意味着对象的时间跨度必须完全落在您正在搜索的时间跨度内(例如,对象是 1950-1960,而您搜索的是 1900-2000)。
如果您只需要对象时间跨度的任何部分落在搜索的时间跨度内(在您的情况下这似乎很可能),例如:
dateFrom:[* TO $end] AND dateTo:[$start TO *]
即对象的时间跨度必须在搜索时间跨度结束之前开始,并且对象的时间跨度必须在搜索时间跨度开始之后结束。这将通过搜索 1950-1960 找到 1900-2000 年的对象。
关于java - Solr 日期范围存储帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2354898/