如何提高搜索文本在solr中的排名?

如何提高搜索文本在solr中的排名?,solr,full-text-search,Solr,Full Text Search,请任何机构帮助我们了解如何提高solr中精确短语的相关性?基于LCS算法,与其他匹配项相比,完整查询字符串的精确匹配项应自动排名更高。我认为这应该是默认的行为。有boosting和all-in-Solr的概念,但我认为在这种情况下不需要它。基于LCS算法,与其他匹配项相比,完整查询字符串的精确匹配项应自动排名更高。我认为这应该是默认的行为。有一个boosting和all-in-Solr的概念,但是我认为在这个场景中不需要它。你可以做的是在你的查询中添加一个带有确切短语的OR,然后增强这个短语。例

请任何机构帮助我们了解如何提高solr中精确短语的相关性?

基于LCS算法,与其他匹配项相比,完整查询字符串的精确匹配项应自动排名更高。我认为这应该是默认的行为。有boosting和all-in-Solr的概念,但我认为在这种情况下不需要它。

基于LCS算法,与其他匹配项相比,完整查询字符串的精确匹配项应自动排名更高。我认为这应该是默认的行为。有一个boosting和all-in-Solr的概念,但是我认为在这个场景中不需要它。

你可以做的是在你的查询中添加一个带有确切短语的OR,然后增强这个短语。例如,您的查询可能是:

?q=(foo OR bar OR "foo bar"^10)
“foo”或“bar”的结果仍然会被找到,但确切的词组会增加

以下页面提供了一些有关此方面的有用信息,包括如何使用标准解析器以外的查询解析器:


希望这能有所帮助。

你能做的就是在你的查询中添加一个带有确切词组的OR,然后增强这个词组。例如,您的查询可能是:

?q=(foo OR bar OR "foo bar"^10)
“foo”或“bar”的结果仍然会被找到,但确切的词组会增加

以下页面提供了一些有关此方面的有用信息,包括如何使用标准解析器以外的查询解析器:


希望这有帮助。

如果且仅当您使用的是dismax,那么您可以只设置pf(短语字段)参数。它的语法与qf参数fieldName^boost相同

例如:

fieldOne^2.3 fieldTwo fieldThree^0.4
这将使用指定的提升来提升指定字段上的短语匹配。 没有增压值(如Field Two)将使用默认增压值1.0。 如果使用pf,还应查看ps(短语斜率)参数,该参数指定两个单词可以相距多远,以便它们仍然算作“短语”


无论如何,如果且仅当您正在使用dismax时,此链接应该会有所帮助,而您只需设置pf(短语字段)参数即可。它的语法与qf参数fieldName^boost相同

例如:

fieldOne^2.3 fieldTwo fieldThree^0.4
这将使用指定的提升来提升指定字段上的短语匹配。 没有增压值(如Field Two)将使用默认增压值1.0。 如果使用pf,还应查看ps(短语斜率)参数,该参数指定两个单词可以相距多远,以便它们仍然算作“短语”


无论如何,这个链接应该会有所帮助

谢谢,我知道这一点。但我们在一些特殊情况下遇到了问题。如果我们正在搜索完整的短语,它应该位于顶部,但在某些情况下,结果不会位于顶部。不知道为什么?你能帮我吗?LCS不保证确切的短语会排名更高。通过确切的短语,我理解术语匹配和连续位置匹配。我不确定Lucene中是否使用了LCS,但如果使用了LCS,则无法确保连续位置术语比赛的排名更高,因为tf idf用于得分。如果您想要这种行为,您需要使用Lucene/Solr短语查询,它会考虑位置信息,并增加与这种查询类型匹配的文档的分数。谢谢,我知道这一点。但我们在一些特殊情况下遇到了问题。如果我们正在搜索完整的短语,它应该位于顶部,但在某些情况下,结果不会位于顶部。不知道为什么?你能帮我吗?LCS不保证确切的短语会排名更高。通过确切的短语,我理解术语匹配和连续位置匹配。我不确定Lucene中是否使用了LCS,但如果使用了LCS,则无法确保连续位置术语比赛的排名更高,因为tf idf用于得分。如果您想要这种行为,您需要使用Lucene/Solr短语查询,这将考虑位置信息,并增加与这种查询类型匹配的文档的分数。