当lucene默认的文本相关性排序无法满足需要时,我们需要自定义文档相关性打分,从而可以影响文档排序,此时可以使用solr的valueSource插件实现自定义打分。
solrconfig.xml 中的配置样例:
<valueSourceParser name="distScore" class="com.dfire.tis.solrextend.valuesourceparser.ShopMultiCirclesGeoDIstValueSourceParser" > <lst name="params"> <int name="firstCircle">5</int> <int name="secondCircle">10</int> <int name="thirdCircle">15</int> <str name="weightField">period_score</str> </lst> </valueSourceParser>
这个配置是的目的是为默认按照距离远近排序的方式,为不同的商圈上的商家重新赋上权重,从而影响在商圈上的商家的排序前后,比如有些商家虽然按照距离来说应该排在后面,但是由于商家服务质量好,在打分上为该商家赋上一个较高的权重,从而可以让商家排名靠前。
Valuesource代码样例:
public class ShuffleValueSourceParser extends ValueSourceParser { private int mod; private float weight; @SuppressWarnings("all") public void init(NamedList args) { NamedList namedList = ((NamedList) args.get("params")); this.mod = (int) (namedList.get("mod")); this.weight = (float) namedList.get("weight"); } @Override public ValueSource parse(FunctionQParser fp) throws SyntaxError { return new NumDocsValueSource(); } private class NumDocsValueSource extends ValueSource { private FunctionValues fcVal = new DoubleDocValues(this) { @Override public double doubleVal(int doc) { return (doc % mod) * weight; } }; @Override public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException { return fcVal; } public String name() { return "shuffle"; } @Override public boolean equals(Object o) { return this.getClass() == o.getClass(); } @Override public int hashCode() { return this.getClass().hashCode(); } @Override public String description() { return name() + "()"; } } }
客户端查询样例:
AND+_val_:"{!func}distScore()
另外,solr还默认提供了一些其他的valueSource实现,例如:testfunc,ord,literal等,详细请查看org.apache.solr.search.ValueSourceParser
另外:valuesource也可以用在商品的nestdoc查询上,比如sku-spu中商品是绑定在sku上的,通过QueryParser{!parent} 来过滤spu记录,需要对命中结果用sku的价格来进行排序,可以使用以下查询语法:
_val_:"abs(price)" AND _query_:"{!parent score=Max which=type:p}card_degree:[100 TO *]"
通过price字段的绝对值作为子doc的socre分来排序,score=Max的意思是一个spu有多个sku匹配时候使用最大的值来排序,也可以使用score=Min取最小的值来排序
相关推荐
SCORE 模式定义 SCORE 模式是一种自我改变和沟通技巧,由帝尔兹(Dilts)和艾博斯坦(Epstein)在 1987 年发展出来的。该模式旨在收集、创造改变所需的适景资讯,通过五个方面的分析:症状(Symptom)、原因(Cause...
_score_排序算法"表明这个项目或代码示例主要涉及对学生分数的排序,使用了某种排序算法。描述中提到,数据存储在两个数组中,一个用于存储学生的分数,另一个用于存储学生姓名。排序后,结果将按照分数的降序输出。...
For this assignment, we will read score and name of the department of students in some school from a text-file (specified by a command line parameter) and send output to console. Your program ...
标题中的“mnist inception score实例”指的是在MNIST数据集上应用Inception Score这一评估指标的实践案例。MNIST是一个广泛使用的手写数字识别数据集,包含60,000个训练样本和10,000个测试样本。Inception Score...
load data local inpath '/export/servers/hivedatas/score.csv' into table score2 partition(year='2018',
利用上面的特点,可以利用mysql实现一种独特的排序; 首先先按某个字段进行order by,然后把有顺序的表进行分组,这样每组的成员都是有顺序的,而mysql默认取得分组的第一行。从而得到每组的最值。 select id, (@...
4. **排序和选择特征**:计算出所有特征的Fisher Score后,根据得分对特征进行排序,选择得分最高的前k个特征作为最终的特征子集。这个过程可能需要通过交叉验证来确定最佳的k值。 5. **评估和应用**:使用选定的...
《X'pert HighScore Plus 2.0:深入探索XRD分析软件的奥秘》 在现代材料科学领域,X射线衍射(XRD)...通过熟练掌握安装方法、PDF卡片导入等操作,用户可以在探索微观世界的过程中,更好地解读和利用X射线衍射数据。
IS利用了Inception模型在生成图像上的分类概率分布来度量图像的质量。如果Inception模型对生成图像的分类概率分布接近单一类别的分布,那么IS分数会较低,表示生成的图像可能过于模糊或不真实。相反,如果概率分布...
F-score matlab 源代码 对F-score进行计算 运行环境 Matlab
Go-kube-score是针对Kubernetes对象定义的一个强大工具,它专注于静态代码分析,旨在帮助开发者提高其Kubernetes应用的安全性和灵活性。这个工具基于Go语言开发,体现了Go在系统工具开发上的高效和易用性。在"其它...
编写一程序,统计学生的成绩信息(保存在文件Score.dat中...2. 代码的总体结构已在文件Score.c中给出,并定义了一些函数头,但有关函数体代码和一些主程序处理代码要求学生填写,也可以修改函数头; 编译score.c即可
企业破产风险 (包括Z-score O-score指数) Z-score O- score 2.参考文献: 伊志宏,刘鑫魁.资本市场开放与企业财务风险:防范化解 还是推波助澜[J].经济理论与经济管理,2023,43(02):31-45. 何 康,项后军,方显仓等....
Z-Score的定义是每个观测值与数据集平均值的差除以标准差。公式为: \[ Z = \frac{(X - \mu)}{\sigma} \] 其中: - \( X \) 是观测值, - \( \mu \) 是数据集的平均值, - \( \sigma \) 是数据集的标准差。 Z-...
标题中的"score.rar_Score!_score"暗示了这是一个与评分或得分相关的程序,可能涉及到某种算法或系统,用于评估图像匹配的准确性。"Score!"可能是这个程序的名称或者一个关键功能标识,它可能用于庆祝成功匹配或者...
在电商领域,搜索结果的排序和打分对于用户体验至关重要,因为它直接影响到商品的展示顺序,进而影响到销售。本篇文章将详细介绍如何利用Solr实现电商自定义打分机制。 首先,我们需要了解Solr的评分(Score)机制...
**jQuery.Score 2.0评分插件详解** `jQuery.Score 2.0`是一个功能强大的JavaScript库,专门用于实现交互式评分系统。它基于流行的jQuery框架构建,为网页中的评分功能提供了一种简单且可定制的解决方案。这个插件...
**jQuery.Score评分插件**是一种基于JavaScript库jQuery的交互式评分解决方案。该插件设计用于在网站上实现用户对各种内容进行评分的功能,如产品评价、电影评分等。要理解和使用这个插件,首先需要对jQuery有一定的...
在逆向过程中,DDPM利用贝叶斯法则和均值、方差的计算,来逐步减小噪声,最终生成与训练数据相似的新样本。 Score-based Generative Models是另一种基于随机微分方程(SDE)的生成模型。这些模型的核心在于score...
《学生成绩管理系统中的“score”文件解析》 在信息技术领域,数据管理是核心环节之...通过对这些数据的深度挖掘和利用,我们可以更好地理解学生的学习状况,优化教育资源配置,提升教学质量,推动教育信息化的发展。