过滤查询的solr评分

过滤查询的solr评分,solr,Solr,我的模式中有一些字段,如下所示: 酒店名称:一些酒店名称 城市:某个城市 县代码:DE 街道:一些街道 我要查找一些酒店的查询如下所示 select/fq=city:"Berlin"&fq=country_code"DE"&fq=hotel_name:"achat berlin hotel"=city:"Berlin"&fq=country_code"DE"&fq=hotel_name:"achat berlin hotel" 返回值,包含在hotel_name

我的模式中有一些字段,如下所示:

酒店名称:一些酒店名称

城市:某个城市

县代码:DE

街道:一些街道

我要查找一些酒店的查询如下所示

select/fq=city:"Berlin"&fq=country_code"DE"&fq=hotel_name:"achat berlin hotel"=city:"Berlin"&fq=country_code"DE"&fq=hotel_name:"achat berlin hotel"
返回值,包含在hotel_name字段中找到的带有某些或多个标记的许多酒店。若我想简略地说,这些文件中每个令牌的数量和酒店名称文件中的匹配,我该如何做到这一点。我希望在顶部的hotel_name字段中保留最大匹配令牌数

例如,如果酒店名称包含所有三个标记:achat、berlin和hotel,则应显示在顶部。下面应该显示较低的匹配项


是否可以根据每个字段匹配的令牌数为文档打分。

schema.xml中“hotel_name”字段的类型是什么

还有,你已经试过了吗?默认情况下,Solr会考虑协调系数:


“如果查询中有多个术语,匹配的术语越多,分数越高”。所以,我想你的情况已经发生了

首先,您的查询格式不正确。您需要以
开始查询,提供
q
参数,在
国家/地区代码
字段名和值之间提供
,并且不需要重复
fq
参数。应该是:

?q=*:*&fq=city:"Berlin"&fq=country_code:"DE"&fq=hotel_name:"achat berlin hotel"
hotel\u name
country\u code
city
这些
fq
参数将根据您的
schema.xml
进行标记和分析,并且可能完全匹配或不匹配,这取决于您在
solrconfig.xml
中指定的查询斜率

是否可以根据文档的编号为文档打分 每个字段匹配的令牌

solr中的得分不是字面意义上的,所以不,不完全是

例如,如果酒店名称包含所有三个标记:achat、berlin和hotel, 它应该出现在顶部。下面应该显示较低的匹配项

您已将查询作为一个短语提供(引用时带有
s),因此solr默认情况下会找到准确的短语,并给它一个关联的分数。如果在
solrconfig.xml
中配置了(
qs
参数),则还会添加一个草率查询的分数。您可能真正想要的是:

hotel_name:achat berlin hotel

这是一个非短语查询。

它不会自动发生。有时我会得到匹配度较低的文档,然后是匹配度较高的文档。hotel_name的类型为: