当字段不存在时,使用Solr字段提升的默认值

时间:2014-02-12 22:45:46

标签: solr

我现有的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
  }

当文档中尚未存在字段时,是否可以指定用于提升的默认?我的逻辑是

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

1 个答案:

答案 0 :(得分:1)

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

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

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

参考here