利用用户行为提升SolR结果 [英] Boost SolR results using users behavior

查看:88
本文介绍了利用用户行为提升SolR结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望SolR能够从我的网站用户的选择中学习".我的意思是说,我知道用户执行搜索后单击了哪种产品.因此,我为在SolR中建立索引的每种产品收集了[搜索的术语=>点击次数]列表.但是我不知道如何有一个取决于用户输入的提升.是否可以为文档的一些键/值对建立索引并使用boost参数中可用的函数来检索值?

I would like SolR to be able to "learn" from my website users' choices. By that i mean that i know which product the user click after he performed a search. So i collected a list of [term searched => number of clicks] for each product indexed in SolR. But i can't figure how to have a boost that depends on the user input. Is it possible to index some key/value pairs for a document and retrieve the value with a function usable in the boost parameter ?

我不确定是否要清楚,所以我将添加一个具体示例:

I'm not sure to be clear, so i'll add a concrete example :

比方说,当用户搜索花园椅子"时,SolR会向我返回3种产品,绿色花园椅子",蓝色椅子"和花园花园". 正如预期的那样,绿色花园椅"排名第一,hama排名最后. 但是,然后所有搜索花园椅子"的用户最终都点击了hamac.

Let's say that when a user search for "garden chair", SolR returns me 3 products, "green garden chair", "blue chair", and "hamac for garden". "green garden chair" ranks first, the hamac ranks last, as expected. But, then, all the users searching for "garden chair" ends up clicking on the hamac.

我希望帮助hamac在搜索花园椅"上排名第一,而无需更改在其他搜索中获得的排名.因此,我希望能够执行基于key => value的增强. SolR是否可以实现?

I would like to help the hamac to rank first on the search "garden chair", WITHOUT altering the rank it got on other search. So i would like to be able to perform a key=>value based boost. Is that possible to achieve with SolR ?

我敢肯定,我不能成为第一个需要这种基于用户的搜索结果改进的人.

I'm sure that i can't be the first one needing such user-based search results improvement.

先谢谢了.

推荐答案

您可以 edismax bq (如果您使用的是edismax(或bf)).为此,您显然需要存储信息(在数据库中,redis,任何您喜欢的信息):

You could you edismax bq, if you are using edismax (or maybe bf). For this to work, you obviously need to store the info (in a db, redis, whatever you fancy):

  • 搜索花园椅":
    • 点击花园hamac":10
    • 点击绿色花园椅":4
    • searched "garden chair":
      • clicked "hamac for garden": 10
      • clicked "green garden chair": 4
      • ...

      依此类推,在进行搜索时查找该信息,如果有可用于搜索的信息,则发送bq来增强您想要的内容.

      And so forth, look this up when there is a search, and if there is info available for the search, send the bq boosting what you want.

      此外,请查看 QueryElevationComponent 这可能是您的目的(尽管比增强功能更强大). ...).不过,有两件事要考虑:

      Also, check out the QueryElevationComponent It might your purpose (although is stronger than just boosting....). There are two things to consider though:

      1. 每次更改点击次数时,都需要修改xml并重新加载,因此最好将其批处理为每晚或类似的操作.
      2. 最近有一个jira问题,可让您提供类似的功能,但通过提供请求参数,不需要xml/reload,因此也请检查一下

      这篇关于利用用户行为提升SolR结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆