我正在尝试构建一个基于内容的过滤系统,通过为产品分配类似的功能对产品进行分类
{ salty: 0, sweet: 0.5, bitter: 0.7}
。这意味着我给每个产品一个n维向量
[0, 0.5, 0.7]
。
对于给定的产品,我现在想通过计算矢量之间的距离来找到“相似”的产品。因此,对于两个产品[0.2, 0.2, 0.8]
和[0.4, 0.9, 0.9]
,欧几里德距离大约是0.78,这应该是他们的“得分”(越低越好)。
我如何使用elasticsearch做到这一点?弹性搜索是否适合执行此类任务?
请注意,真正的问题有三个以上的维度。