Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
solr分数文档,无论术语的频率如何,所有术语都相同_Solr - Fatal编程技术网

solr分数文档,无论术语的频率如何,所有术语都相同

solr分数文档,无论术语的频率如何,所有术语都相同,solr,Solr,我有一个关于如何从solr返回结果排序的要求。从高层次来看,它们应该是这样的: 按日期排序的subset1字段上的精确匹配 按日期排序的subset2字段上的精确匹配 按日期排序的subset1字段上的部分匹配 按日期排序的subset2字段上的部分匹配 按日期排序的subset1字段上的模糊匹配 按日期排序的子2字段上的模糊匹配 目前,我正在排序的solr分数,然后日期。当我查询solr时,我使用的是一个boost函数,该函数对旧文档进行反向提升,以便它们向下移动,而新文档“浮动”到顶部。

我有一个关于如何从solr返回结果排序的要求。从高层次来看,它们应该是这样的:

  • 按日期排序的subset1字段上的精确匹配
  • 按日期排序的subset2字段上的精确匹配
  • 按日期排序的subset1字段上的部分匹配
  • 按日期排序的subset2字段上的部分匹配
  • 按日期排序的subset1字段上的模糊匹配
  • 按日期排序的子2字段上的模糊匹配
目前,我正在排序的solr分数,然后日期。当我查询solr时,我使用的是一个boost函数,该函数对旧文档进行反向提升,以便它们向下移动,而新文档“浮动”到顶部。我也在提升相应的字段,以便以正确的顺序获得精确、部分和模糊匹配。这让我一路走到那里

现在是棘手的部分。该要求规定,如果我搜索类似“红色福特卡车”的内容,则包含“红色福特卡车”的文档,无论术语的频率如何,都应获得相同的分数。将较新的文档提升到顶部对分数的影响不足以将术语频率较高的文档推到足够低的程度

例如,假设我有两个文档: 文件1:

  • 字段1:“红色福特卡车真的是红色的,它是一辆快速的卡车”
  • 日期:2010年1月1日
文件2:

  • 字段1:“红色福特卡车停在街上”
  • 日期:2012年10月1日
当我搜索“红色福特卡车”时,我希望文档2首先出现,因为它较新,并且包含所有查询的术语。目前,文档1将首先出现,因为它在字段1中有更多匹配项,而反向提升不足以将其向下推

那么现在我的问题是,solr中是否有一个配置点,告诉它对一个文档只匹配一次查询的术语?有点像T-SQL中存在的


如果有任何其他有用的信息,请让我知道,并提前感谢您的时间。

由于术语频率和字段长度的不同,这些分数是不同的

忽略规范
似乎是关于字段长度的要求。看一下前面的答案,记住该字段的索引时间提升也将被禁用:

如果为true,则忽略与此字段关联的规范(这将禁用 字段的长度规范化和索引时间提升,并保存 一些记忆)

省略术语frequencandpositions
似乎与术语频率有关:

如果为true,则从发布中忽略术语频率、位置和有效载荷 在这个领域。这可能会提高不符合要求的字段的性能 需要这些信息。它还减少了所需的存储空间 对于索引。依赖于在上发布的位置的查询 具有此选项的字段将自动找不到文档。这 对于非文本字段的所有字段,属性默认为true


由于术语的频率和字段的长度,这些分数是不同的

忽略规范
似乎是关于字段长度的要求。看一下前面的答案,记住该字段的索引时间提升也将被禁用:

如果为true,则忽略与此字段关联的规范(这将禁用 字段的长度规范化和索引时间提升,并保存 一些记忆)

省略术语frequencandpositions
似乎与术语频率有关:

如果为true,则从发布中忽略术语频率、位置和有效载荷 在这个领域。这可能会提高不符合要求的字段的性能 需要这些信息。它还减少了所需的存储空间 对于索引。依赖于在上发布的位置的查询 具有此选项的字段将自动找不到文档。这 对于非文本字段的所有字段,属性默认为true


谢谢你的回复。省略frequeandpositions有点帮助,但实际上我也很关心位置。因为我想把只有“红色福特卡车”的东西排在“红色福特皮卡车”的前面。除非我误解了“位置”部分,但它似乎就是这么做的。我明白了……你可以尝试将省略的规范和省略的频率和位置以不同的方式组合在一起,并对它们进行处理。我不知道有任何没有位置的omitTermFreq,尽管我读过关于它的讨论。祝你好运你能给我指一下那些讨论,看看我是否能为这个问题设计一个策略吗?看一下,我发现它在谷歌上搜索。顺便说一句……对不起,如果答案有用,也许你至少可以投上一票。谢谢你的回复。省略frequeandpositions有点帮助,但实际上我也很关心位置。因为我想把只有“红色福特卡车”的东西排在“红色福特皮卡车”的前面。除非我误解了“位置”部分,但它似乎就是这么做的。我明白了……你可以尝试将省略的规范和省略的频率和位置以不同的方式组合在一起,并对它们进行处理。我不知道有任何没有位置的omitTermFreq,尽管我读过关于它的讨论。祝你好运你能不能给我指一下那些讨论,看看我是否能为这个问题设计一个策略?看一看,我发现它在谷歌上搜索。顺便说一句……对不起,如果答案有用,也许你至少可以投上一票。