【问题标题】:Solr - How to index and boost results using several popularity fields?Solr - 如何使用几个流行度字段来索引和提升结果?
【发布时间】:2020-09-03 11:38:48
【问题描述】:

这是一个示例文档 -

{
    "id": "AIRPORT-LAS",
    "RANK": 80.0,
    "TYPE": "AIRPORT",
    "COUNTRY_NAME": "United States",
    "COUNTRY_CODE": "US",
    "ISO_COUNTRY_CODE": "US",
    "LATITUDE": "36.08047103880001",
    "LONGITUDE": "-115.14331054699983",
    "LATLON": [
        "36.08047103880001,-115.14331054699983"
    ],
    "CITY_CODE": "LAS",
    "CITY_NAME": "Las Vegas",
    "PROVINCE_CODE": "NV",
    "PROVINCE_NAME": "NEVADA",
    "AIRPORT_NAME": "McCarran Intl Airport",
    "AIRPORT_CODE": "LAS"
}

现在,根据客户搜索的位置(地理位置),我将使用上述每个文档的州和国家/地区组合获得多个 RANK。

例如-

For AIRPORT-LAS, I'll have the following -
USA - CA - 100
USA - NJ - 80
USA - NY - 75
.... rest of combinations

我正在尝试理解以下内容 -

  1. 将这组新等级索引到现有文档的最佳方法是什么?作为一个单独的集合?还是作为嵌套数据集?
  2. 如何在搜索时使用新的排名集提升我的结果? [所以基本上,如果用户从美国 - 加州搜索,我应该使用 RANK=100 来提升我的搜索结果。我会在搜索时知道州和国家/地区。]

谢谢!

【问题讨论】:

  • 您现在从哪里获得提升?我不确定您是否需要为它们编制索引;因为您在创建查询时知道国家 + 州,所以查找提升然后为与 bqboost 匹配的文档添加提升?
  • 如果您看到示例文档,则有一个 RANK 字段。这就是用于匹配相关性的字段。

标签: solr autocomplete solrj solr-boost


【解决方案1】:

如果您想将数字文档值直接集成到分数中,请在查询时间上使用提升功能。您也可以在此处使用多个文档值,但请注意选择适当的提升因子。

bf=mul(RANK, 2)

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 2014-04-06
    • 1970-01-01
    相关资源
    最近更新 更多