我需要根据一个故事的标签搜索相关的故事。
假设我有一个有4个标签的故事,所以我的相关故事逻辑是
我怎样才能做到这一点。我是索尔的一只新蜜蜂请引导我..。
发布于 2016-06-28 15:30:26
Thomas在评论中的建议是个好主意,但可能会给出错误的结果--例如,如果您有两个非常常见的标记和两个标记,那么这两个故事是唯一的。即:
如果在显示第一个条目时搜索tag:(foo OR bar OR the OR is),则可能会得到Story 2--因为它具有最“有价值”的标记( Solr的默认计算使用该术语在文档中出现的次数除以它在文档中出现的文档总数)。
最好的结果可能是(这将取决于您的用例)仍然是Story 2,但是如果您真的想获得与三个标记匹配的文档,那么您必须以不同的方式来完成它。
如果您需要第二个选项,您可以使用函数查询来解决这个问题:termfreq返回一个术语在文档中的次数(如果您的标记在文档中是不同的,这将是1)。sum允许您对每个函数的值进行求和,如下所示:
sum(termfreq(tag, 'foo'), termfreq(tag, 'bar'), termfreq(tag, 'the'), termfreq('is')) 。。将为用于排序的每个文档提供不同的标记计数。
您还可以选择使用自定义相似类,这将为每个术语返回相同的相似性评分(根据您使用的Solr版本,可以为每个字段(而不仅仅是核心)设置相似性)。我不认为有一个包括在内,but there's plenty of examples available。
https://stackoverflow.com/questions/38074841
复制相似问题