Solr日期范围存储帮助

pes*_*sar 3 php java sql database solr

如何在solr中存储日期范围?

我需要存储开始日期和结束日期.

让我们说它是一个别墅,在一段时期(开始和结束)出租.

我必须使用两个字段吗?

在搜索中,用户可以选择开始日期和结束日期,所以在查询solr时我想我可以使用类似的东西:

     date:[$start TO $end]
Run Code Online (Sandbox Code Playgroud)

但这只查询一个字段,这很好,但存储日期范围是我的问题.

Hmmmmm.

有帮助吗?

谢谢

Kri*_*ris 6

是的,你需要两个领域.

然后,查询必须在两个字段上.

例:

dateFrom:[$start TO $end] AND dateTo:[$start TO $end] 
Run Code Online (Sandbox Code Playgroud)

这意味着对象的时间跨度必须完全落在您搜索的时间范围内(例如,对象是1950-1960,而您搜索的是1900-2000).

如果你只是需要对象的时间跨度的任何部分落在搜索的时间范围内(在你的情况下似乎可能),例如:

dateFrom:[* TO $end] AND dateTo:[$start TO *]
Run Code Online (Sandbox Code Playgroud)

即对象的时间跨度必须在搜索时间跨度结束之前开始,并且对象的时间跨度必须在搜索时间跨度开始之后结束.这将找到一个1900-2000的对象,搜索1950-1960.