Search Solr-多个搜索词的相同搜索结果分数?
我想知道如何能得到不同的分数为多个词的搜索结果 solr中的某些结果具有相同的分数,即使查询中有多个术语,如下面的示例所示 我在Solr中有两个索引,每个索引包含:id、first\u name、last\u name 每个索引如下所示:Search Solr-多个搜索词的相同搜索结果分数?,search,solr,lucene,edismax,Search,Solr,Lucene,Edismax,我想知道如何能得到不同的分数为多个词的搜索结果 solr中的某些结果具有相同的分数,即使查询中有多个术语,如下面的示例所示 我在Solr中有两个索引,每个索引包含:id、first\u name、last\u name 每个索引如下所示: <doc> <str name="id">1</str> <str name="last_name">fisher</str> <str name="name">j
<doc>
<str name="id">1</str>
<str name="last_name">fisher</str>
<str name="name">john</str>
</doc>
<doc>
<str name="id">2</str>
<str name="last_name">darby</str>
<str name="name">john</str>
</doc>
1.
费希尔
厕所
2.
达比
厕所
当我只询问“john”时,两个结果都会出现。那太完美了。
然而,当我询问“约翰·费舍尔”时,两个结果都出现了,但分数相同。
我想要的是基于搜索词相关性的不同分数
下面是以下查询的结果
*%2分
...
0.85029894
1.
费希尔
厕所
0.85029894
2.
达比
厕所
任何帮助都将不胜感激您的最佳选择是了解和分析不同因素如何影响您的文档分数,Lucene提供了有用的功能
解释
,Solr利用此功能提供如何计算分数您可以在Solr中使用“debugQuery”来查看其推导过程
?q=john&fl=score,*&rows=2&debugQuery=on
前答复:
厕所
厕所
+析取MaxQuery((文本:john))
+(正文:约翰)
2.1536596=(匹配)现场重量(文本:36722中的john),产品:
1.0=tf(termFreq(文本:john)=1)
8.614638=idf(docFreq=7591,maxDocs=15393998)
0.25=字段规范(字段=文本,文档=36722)
2.1536596=(匹配)现场重量(文本:36724中的john),产品:
1.0=tf(termFreq(文本:john)=1)
8.614638=idf(docFreq=7591,maxDocs=15393998)
0.25=字段规范(字段=文本,文档=36724)
除此之外,您还可以使用explainOther
查找特定文档与查询不匹配的原因
?q=john&fl=score,*&rows=2&debugQuery=on&explainOther=on
请阅读:
解释
,Solr利用此功能提供如何计算分数您可以在Solr中使用“debugQuery”来查看它是如何得出的
?q=john&fl=score,*&rows=2&debugQuery=on
前答复:
厕所
厕所
+析取MaxQuery((文本:john))
+(正文:约翰)
2.1536596=(匹配)现场重量(文本:36722中的john),产品:
1.0=tf(termFreq(文本:john)=1)
8.614638=idf(docFreq=7591,maxDocs=15393998)
0.25=字段规范(字段=文本,文档=36722)
2.1536596=(匹配)现场重量(文本:36724中的john),产品:
1.0=tf(termFreq(文本:john)=1)
8.614638=idf(docFreq=7591,maxDocs=15393998)
0.25=字段规范(字段=文本,文档=36724)
除此之外,您还可以使用explainOther
查找特定文档与查询不匹配的原因
?q=john&fl=score,*&rows=2&debugQuery=on&explainOther=on
请阅读:
edismax
姓
另一种方法是使用copyField将两个字段合并为一个字段,并且只在新创建的字段中搜索。我认为您只在“name”字段中搜索。这就是为什么分数是一样的。如果您使用,您可以轻松搜索这两个字段,最相关的将有更高的分数 e、 g
edismax
姓
另一种方法是使用copyField将2个字段合并为1个字段,并且只在新创建的字段中搜索。感谢快速回复人员,我对此表示感谢 从explain查询中,我能够确定搜索实际上只在一个字段上执行 我发现可以在同一个字段中添加多个字段进行搜索。 在schema.xml中,我添加了以下内容:
<copyField source="last_name" dest="text"/>
现在,当使用多个搜索词时,结果会如预期的那样出现。谢谢大家的快速回复,我对此表示感谢 从explain查询中,我能够确定搜索实际上只在一个字段上执行 我发现可以在同一个字段中添加多个字段进行搜索。 在schema.xml中,我添加了以下内容:
<copyField source="last_name" dest="text"/>
现在,当使用多个搜索词时,结果将按预期显示。是否签出:是否签出: