我想知道是否还有根据某些规则将最终用户查询转换为更复杂的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
这可能吗?或者这个逻辑必须要有一个预先搜索表单,用户可以在一个他们只想要销售物品的复选框中清楚地说明。
感谢。
答案 0 :(得分:0)
很有可能转换用户查询。您可以通过以下两种方式完成此操作
实现一个侦听用户查询的Servlet过滤器,然后将其转发给solr请求处理程序。
查看SOLR中的查询解析器插件,并根据现有标准查询解析器实现一个,并修改它以应用转换规则。
答案 1 :(得分:0)
让搜索通过整个索引和let the user choose进行。如果显示评论,则使用适当的视图渲染。如果产品出现,请提供搜索更多产品。
三星32在评论 - 阅读更多
LG 32在提供 - 找到更多这样的
您的优惠页面可以提供更多选项,例如过滤销售产品。
您可以在文档上使用全局增强字段。例如,正在销售的产品的得分为1.0
,而缺货产品的得分为0.33
。对新产品的评论有1.0
,旧产品的评论较少。
答案 2 :(得分:0)
也许您可以设置搜索,以便当有人搜索任何包含isOnSale作为辅助排序参数的内容时。因此,默认情况下按分数排序,然后按isonsale排序或按isonsale排序。通过这种方式,您仍然可以在结果中获得所有“电视”广告,只有销售的广告才能获得最佳效果。