Elasticsearch自定义分数功能

时间:2015-06-09 10:33:39

标签: elasticsearch laravel-5

假设我有以下表格:

products: id, name, latitude and longitude
users: id, name, latitude, longitude
interests: id, name
user_interests: user_id, interest_id

只要使用模型观察者创建/编辑弹性搜索,就会将其插入/更新到弹性搜索中。

现在我想在弹性搜索中创建自定义脚本/评分功能,当用户搜索产品时,它会返回匹配的分数。评分将基于用户位置和产品之间的距离,用户兴趣和产品名称匹配等。

对弹性搜索不熟悉,有什么方法可以实现这一目标?任何教程,在线资源或示例都非常受欢迎。

PS:我使用PostgreSQL作为数据库。我可以创建一个名为get_match(product_id,user_id)的函数,该函数根据匹配条件返回一个数字(0-100)并执行以下操作:

//psuedo sql 
select p.name, get_match(p.id, u.id) as match
from products p, users u
order by match desc

如果可能的话,我想在elasticsearch中实现类似的功能。

0 个答案:

没有答案
相关问题