过滤查询的solr评分
我的模式中有一些字段,如下所示: 酒店名称:一些酒店名称 城市:某个城市 县代码:DE 街道:一些街道 我要查找一些酒店的查询如下所示过滤查询的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
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的类型为: