【发布时间】:2016-03-17 21:21:34
【问题描述】:
我使用 algolia 搜索作为我的搜索引擎。但是在结果中显示正确的价格存在问题。价格是根据搜索参数计算的,因此不能在记录中索引。我应该在哪里计算价格?它是一项上限服务,您可以在其中找到带有评级、姓名、公司信息的司机。价格是根据每英里的价格计算的。搜索输入是从 > 到位置。谢谢。我使用带有 JS 结果的 php。
【问题讨论】:
标签: search full-text-search algolia
我使用 algolia 搜索作为我的搜索引擎。但是在结果中显示正确的价格存在问题。价格是根据搜索参数计算的,因此不能在记录中索引。我应该在哪里计算价格?它是一项上限服务,您可以在其中找到带有评级、姓名、公司信息的司机。价格是根据每英里的价格计算的。搜索输入是从 > 到位置。谢谢。我使用带有 JS 结果的 php。
【问题讨论】:
标签: search full-text-search algolia
按动态值排序或过滤的问题是您需要先计算该值...
例如价格 = 地理距离(从用户位置到目的地)* 每英里费率 + 降旗
...对于每个可能有效的文档。
如果您有很多文档,并且在运行计算之前无法过滤您的选择,那么处理您的自定义排名将花费与处理 SQL 查询相同的计算量(需要全表扫描) .
到目前为止,Algolia 似乎全都与速度有关。他们构建数据结构以在索引时支持该速度。目前对customRanking 的支持仅限于按自定义字段列表 asc/desc 进行排序。
您可以使用Solr 或Elasticsearch 使用功能得分 查询来实现您描述的内容。
而且由于您可能没有超过几千个驱动程序来运行此查询计算,因此(首先提到的)性能问题可能不是一个大问题。
【讨论】:
也许最好的处理方法是调用后端 API 端点来计算 Algolia 返回的结果的“动态”价格。我会在您收到结果后立即进行 AJAX 调用,然后再为每个objectID 的结果设置价格。
【讨论】: