Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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

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
Search Solr-如何获得价格的模糊结果?_Search_Solr_Lucene - Fatal编程技术网

Search Solr-如何获得价格的模糊结果?

Search Solr-如何获得价格的模糊结果?,search,solr,lucene,Search,Solr,Lucene,在我的数据中,我有两个字段,类别和价格。我希望能够查询范围、价格:[500到1000]和类别:电子产品,但仍然返回500以下和1000以上的结果,只是根据与范围的差异,让它们在相关性方面得分更低 i、 e.我想展示: 产品1 500美元 产品2$550 产品3$650 产品4$900 产品5$450 产品6$475 产品7 1200美元 有人能解释一下这是如何实现的吗 谢谢, Drew您可以尝试使用查询解析器来提高价格范围吗 bq=price:[500 TO 1000]^10 这将提高该范围内

在我的数据中,我有两个字段,类别和价格。我希望能够查询范围、价格:[500到1000]和类别:电子产品,但仍然返回500以下和1000以上的结果,只是根据与范围的差异,让它们在相关性方面得分更低

i、 e.我想展示:

产品1 500美元
产品2$550
产品3$650
产品4$900
产品5$450
产品6$475
产品7 1200美元

有人能解释一下这是如何实现的吗

谢谢, Drew

您可以尝试使用查询解析器来提高价格范围吗

bq=price:[500 TO 1000]^10
这将提高该范围内的所有价格,使其高于其他价格,从而使其位于首位。

您是否可以尝试使用查询解析器来提高价格范围,使其高于其他价格范围

bq=price:[500 TO 1000]^10

这将提高该范围内的所有价格,使其高于其他价格,从而使其位于顶部。

能否在模式中添加错误结果和价格字段定义的示例?价格字段如下:现在我可以查询我想要的确切结果,但我不确定如何查询模糊结果并根据相关性对其进行评分。例如,我可以收回500-1000个结果,但我也希望该范围以外的值,只是得分的相关性较低。你应该尝试将范围值提高,使其出现在其他范围值之前。我认为我需要的是一个函数来负面提升该范围以外的结果。例如,500到1000的范围的中值为750。因此,值450是距离中间带300的净距离,1100是距离中间带350的净距离。我只是不知道如何将其应用到查询中。这是我最终用来计算的公式:recip(abs(sub(map(price,5001000750),750)),110001000)你能在你的模式中添加错误结果和价格字段定义的示例吗?这是价格字段:现在我可以查询我想要的确切结果,但我不确定如何查询模糊结果并根据相关性对其进行评分。例如,我可以收回500-1000个结果,但我也希望该范围以外的值,只是得分的相关性较低。你应该尝试将范围值提高,使其出现在其他范围值之前。我认为我需要的是一个函数来负面提升该范围以外的结果。例如,500到1000的范围的中值为750。因此,值450是距离中间带300的净距离,1100是距离中间带350的净距离。我只是不知道如何将其应用到查询中。这是我最终用来计算的公式:recip(abs(sub(map(price,5001000750),750)),110001000)我在这个查询中尝试过::::::&deftype=dismax&fl=price,score&bq=price:[500%20TO%201000]^10&numrows=50,但它返回了以下结果:475395420493480525,您正在使用eDiscovery查询解析器吗?defType=edismax?我尝试了demax和edismax,结果是一样的。我正在运行Solr3.5。我尝试了样本数据,效果很好。你能发布你的价格配置吗?和数据样本?价格配置:我在这个查询中尝试过:***&deftype=dismax&fl=price,score&bq=price:[500%20到%201000]^10&numrows=50,但它返回了以下结果:475395420493480525490您使用的是edismax查询解析器吗?defType=edismax?我尝试了demax和edismax,结果是一样的。我正在运行Solr3.5。我尝试了样本数据,效果很好。你能发布你的价格配置吗?和数据样本?价格配置: