想象一下,您正在创建一个网站,允许人们根据价格等搜索租车。一些租车在一年中的某些时段比其他车更受欢迎,因此它们的价格因日期而异。例如,除了12月和12月之外,汽车每年大部分时间可能花费90美元/天。三月,每天花费110美元,一月份和一天2月份每天花费130美元。是否可以在Solr中设置计算字段,这样您就可以搜索租车期间成本低于$ X /天的汽车?我是索尔的新手,所以完全不知道这是否可行 - 如果我问一个愚蠢的问题,对不起。
我遇到的一种可能性是为每个价格索引一次项目,并为每个价格设置开始和结束日期。这可以应对价格变化,但不适用于跨越价格边界的租赁;例如,客户可能想要在2月租一辆车,在3月租两周 - 在这种情况下我们最终找不到汽车。
我正在使用Solr 3.5。是否可以使用FunctionQuery执行此操作?我已经看到了一些关于它们的文档,但我看到的所有示例都使用它们来返回计算值,而不是对该计算值执行搜索。如果我不能使用FunctionQuery执行此操作,我该怎么办?
答案 0 :(得分:1)
我认为这可能是可能的:
在索引中,您可以使用不同类型的列,其中包含不同季节的不同价格。在您的查询中,您需要在特定季节内使用某个产品的价格与该季节中的天数相比较,并将其与另一季节期间的价格相比,与该季节的天数相加。是的,你必须使用FunctionQuery。提供多少天的方法属于您可能必须在调用solr Web服务的客户端上执行的季节。此外,您可以尝试对结果应用过滤器查询,以选择用户愿意支付的金额。