SOLR字段回退行为

时间:2016-09-29 13:05:35

标签: solr

(使用solr 4.10.3)

我有一个包含三个日期的solr架构:

  1. requiredDate(必填字段)
  2. optionalDate(不是必需的)
  3. resolvedDate(由#1或#2填充)

    因为我需要使用ResolvedDate进行排序,所以它是multiValued =“false”。我试图使用行为填充resolveDate; “如果可用,请使用可选字段值,否则回退到所需的字段值”。我的尝试:

  4. 
    <copyField source="requiredDate" dest="resolvedDate" />
    <copyField source="optionalDate" dest="resolvedDate" />
    
    
    由于尝试将多个值复制到单个值字段,

    失败。

    我可以在架构或UpdateRequestHandler定义中实现具有此回退行为的字段吗?怎么样?

1 个答案:

答案 0 :(得分:2)

您可以使用StatelessScriptUpdateProcessor(参见Update Request Processors),它允许在更新请求期间使用脚本处理文档。为每个定义的脚本提供了几个全局变量,因此您可以轻松执行所需的操作。

您必须定义一个UpdateRequestProcessorChain,您可以在其中放置脚本处理器定义,并在更新requestHandler(solrconfig.xml)中声明处理器链的使用。