2

我使用 algolia search 作为我的搜索引擎。但是在结果中显示正确的价格存在问题。价格是根据搜索参数计算的,因此不能在记录中索引。我应该在哪里计算价格?它是一项上限服务,您可以在其中找到带有评级、姓名、公司信息的司机。价格是根据每英里的价格计算的。搜索输入是从 > 到位置。谢谢。我使用带有 JS 结果的 php。

4

2 回答 2

3

也许处理这个问题的最好方法是在您的一端调用后端 API 端点来计算 Algolia 返回的结果的“动态”价格。我会在您收到结果后立即进行 AJAX 调用,然后再渲染它们,为每个objectID结果设置价格。

于 2015-12-12T13:57:40.467 回答
1

按动态值排序或过滤的问题是您需要首先计算该值......

例如价格 = 地理距离(从用户位置到目的地)* 每英里费率 + 降旗

...对于每个可能有效的文件。

如果您有很多文档,并且在运行计算之前无法过滤您的选择,那么自定义排名的处理将花费与处理 SQL 查询相同的计算量(需要全表扫描)。

到目前为止,Algolia 似乎全都与速度有关。他们构建数据结构以在索引时支持该速度。当前的支持customRanking仅限于按自定义字段列表 asc/desc 排序。

您可以使用函数评分查询 使用SolrElasticsearch来实现您所描述的内容。


而且由于您可能没有超过几千个驱动程序来运行此查询计算,因此性能问题(首先提到)可能不是一个大问题。

于 2015-12-22T21:14:59.877 回答