Solr最终用户查询转换

时间:2012-10-18 21:23:43

标签: solr dismax

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

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

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

但是,如果用户输入“电视发售”,那么我想定期搜索令牌电视,并且onsale标志如下:

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

这可能吗?或者这个逻辑必须要有一个预先搜索表单,用户可以在一个他们只想要销售物品的复选框中清楚地说明。

感谢。

3 个答案:

答案 0 :(得分:0)

很有可能转换用户查询。您可以通过以下两种方式完成此操作

  1. 实现一个侦听用户查询的Servlet过滤器,然后将其转发给solr请求处理程序。

  2. 查看SOLR中的查询解析器插件,并根据现有标准查询解析器实现一个,并修改它以应用转换规则。

答案 1 :(得分:0)

让搜索通过整个索引和let the user choose进行。如果显示评论,则使用适当的视图渲染。如果产品出现,请提供搜索更多产品。

  

三星32在评论 - 阅读更多

     

LG 32在提供 - 找到更多这样的

您的优惠页面可以提供更多选项,例如过滤销售产品。

您可以在文档上使用全局增强字段。例如,正在销售的产品的得分为1.0,而缺货产品的得分为0.33。对新产品的评论有1.0,旧产品的评论较少。

答案 2 :(得分:0)

也许您可以设置搜索,以便当有人搜索任何包含isOnSale作为辅助排序参数的内容时。因此,默认情况下按分数排序,然后按isonsale排序或按isonsale排序。通过这种方式,您仍然可以在结果中获得所有“电视”广告,只有销售的广告才能获得最佳效果。