【问题标题】:Using default value for Solr field boosting when field does not exist当字段不存在时使用 Solr 字段提升的默认值
【发布时间】:2014-02-12 22:45:46
【问题描述】:

我现有的 Solr 4.x 实例索引了大约 650k 文档。我刚刚在模式中添加了一个新字段,该字段将持有给将用于提高分数的文档的一些投票。在第一个用户对给定文档投赞成票(或反对票)之前,所述文档不会定义该字段。您可以在使用 Solr 管理工具查看文档时看到这一点。

该字段是使用默认值定义的,但我认为这仅适用于未指定该字段的新文档(或者可能重新索引的文档)。

当我尝试测试不同的增强功能时,我得到以下异常

  "error": {
    "msg": "can not use FieldCache on a field which is neither indexed nor has doc values: votes",
    "code": 400
  }

是否可以指定一个默认的 当文档中不存在(尚)该字段时用于提升?我的逻辑是

  • 字段存在 -- 使用字段
  • 字段不存在 -- 使用默认

【问题讨论】:

  • 你如何解决你的问题。请更新,因为我也面临同样的问题
  • 对不起沙菲克。需求发生了变化,我再也没有机会测试 Leoh 的解决方案。

标签: solr


【解决方案1】:

这似乎与您之前的问题有关。也许你也可以试试 FuntionQuery

 q={!boost b=map(field,0,0,0,default_value) } your_query

这将根据字段值进行提升,如果字段值为空,则使用 default_value。

参考here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多