【问题标题】:How to increase score threshold in solr如何提高solr中的分数阈值
【发布时间】:2019-01-20 17:06:52
【问题描述】:

我正在运行以下选择查询以使用 Solr 在某个区域查找餐厅:

{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
  "q":"name:\"Sushi Hiro\"",
  "pt":"51.048688,-114.0778858",
  "d":"0.2",
  "fl":"*,score",
  "fq":"{!geofilt sfield=location}",
  "rows":"10000000",
  "wt":"json",
  "debugQuery":"true"}},
  "response":{"numFound":1,"start":0,"maxScore":11.842687,"docs":[
  { .... } 

但是,Solr 只返回最相似的文档,而不会显示其余的文档。所以我想要的是至少再获得 2 个与我的查询类似的文档。如何修改分数阈值以获得更多结果?

【问题讨论】:

    标签: solr threshold scoring


    【解决方案1】:

    没有“分数阈值”之类的东西 - 返回的文档是与您的查询匹配的文档。那些未包含的与您在查询中给出的术语不匹配,您可以按照您在查询中包含的要求是什么。

    在您的示例中,我猜问题是您要求的文档位于给定位置 (d=0.2) 的 200m 范围内,并且范围内只能包含一个文档。

    如果您想按距离排序(或提升)而不是将结果限制在附近,请查看spatial search and geodist

    【讨论】:

    • 感谢 MatsLindh 的回答!,所以在我的例子中,我想在一个点对象周围有一个距离过滤器,然后根据它们的文本对它的相邻对象(落在该区域的那些)进行排序他们名字的相似性(这是一个文本字段)。但问题是 Solr 只返回最相似的对象,而没有显示其他对象。我想要的是能够看到所有相邻对象的分数(仅基于它们的名称相似性)。
    • 如果您希望一切都在附近,无论他们的名字如何(但匹配度高的人得分更高),请不要使用常规查询。使用提升查询 (bq) 作为搜索查询,并将常规查询设为 q=*:* - 这样您检索所有文档,但提升与名称匹配的文档。您也可以使用geofilt 作为提升,但在这种情况下,您必须自己决定这两个因素之间的权重。
    猜你喜欢
    • 2021-10-17
    • 2019-03-30
    • 2012-08-17
    • 1970-01-01
    • 2023-04-05
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多