3

我想知道是否有任何方法可以根据某些规则将最终用户查询转换为更复杂的 solr 查询。

例如,如果用户键入 32" 电视,那么我想使用 dismax 查询解析器让 solr 处理这个用户查询字符串,如下所示:

http://localhost:8983/solr/select/?q=32" television&defType=dismax

但是,如果用户输入“televisions on sale”,那么我想定期搜索令牌电视,并且 onsale 标志为 true,如下所示:

http://localhost:8983/solr/select/?q=name:televisions AND isOnSale:true

这可能吗?或者这个逻辑是否需要一个高级搜索表单,用户可以在复选框中清楚地声明他们只想要特价商品。

谢谢。

4

3 回答 3

0

也许您可以设置搜索,以便当有人搜索以 isOnSale 作为辅助排序参数的任何内容时。因此,默认情况下按分数排序,然后按 isonsale 排序或仅按 isonsale 排序。这样一来,您仍然会在结果中看到所有“电视”广告,只有那些在售的广告排在首位。

于 2012-10-20T00:00:15.293 回答
0

转换用户查询是很有可能的。您可以通过以下两种方式进行

  1. 实现一个监听用户查询的 Servlet 过滤器,在将其分派给 solr 请求处理程序之前对其进行转换。

  2. 查看 SOLR 中的查询解析器插件,并基于现有的标准查询解析器实现一个,并对其进行修改以应用转换规则。

于 2012-10-19T03:12:14.170 回答
0

让搜索发生在整个索引中,让用户选择。如果出现评论,请使用适当的视图呈现它。如果产品出现,请提供搜索更多产品。

三星 32 在评论中-阅读更多

LG 32优惠-找到更多类似产品

您的优惠页面可以提供更多选项,例如过滤特价商品。

您可以在文档上使用全局提升字段。例如,打折产品的得分为 ,1.0而缺货产品的得分为0.33。一个新产品的评论有1.0,旧产品的评论更少。

于 2012-10-19T07:03:56.050 回答