Solr:是否可以调用“concat”? “copyField”源中的函数“#xFF1F;”

发布于 2025-01-14 01:40:40 字数 341 浏览 2 评论 0原文

例如,如果我定义下面的“copyField”,solr启动时会抛出这个异常: org.apache.solr.common.SolrException:copyField源:'concat('i1',id1)'不是一个glob,并且不匹配任何显式字段或dynamicField。

<copyField source="concat('i1', id1)" dest="test" />
<copyField source="concat('i2', id2)" dest="test" />

但“concat('i1', id1)”可以设置为查询请求的“fl”,不会出现任何错误。

For example if I define the "copyField" below, the solr will throw this exception when startup:
org.apache.solr.common.SolrException: copyField source :'concat('i1', id1)' is not a glob and doesn't match any explicit field or dynamicField.

<copyField source="concat('i1', id1)" dest="test" />
<copyField source="concat('i2', id2)" dest="test" />

But "concat('i1', id1)" can set to the "fl" of the query request without any errors.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

誰認得朕 2025-01-21 01:40:40

您可以在 Solr 的更新请求处理器的帮助下存档相同的内容

您可以使用 ConcatFieldUpdateProcessorFactory

连接与指定字段匹配的多个值
使用可配置分隔符的条件。

例如:

  1. 将新的 updateRequestProcessorChain 添加到 solrconfig.xml:

  <处理器类=“solr.CloneFieldUpdateProcessorFactory”> 
      field1 
      field4 
     
  <处理器类=“solr.ConcatFieldUpdateProcessorFactory”> 
      field4; 
      _; 
    
    <处理器类=“solr.LogUpdateProcessorFactory”/> 
    <处理器类=“solr.RunUpdateProcessorFactory”/>

  1. 将该链添加到适当的更新处理程序中

         
         application/csv;
         concatFields;  

有关更新处理器的更多详细信息,请参阅下面的链接。
更新请求处理器

注意:重新启动 Solr 服务器并索引新文档。

You can archive the same with the help of Update request Processors of Solr

You can use the ConcatFieldUpdateProcessorFactory :

Concatenates multiple values for fields matching the specified
conditions using a configurable delimiter.

For Example :

  1. Add a new updateRequestProcessorChain to solrconfig.xml:
<updateRequestProcessorChain name="concatFields">
  <processor class="solr.CloneFieldUpdateProcessorFactory"> 
      <str name="source">field1</str> 
      <str name="dest">field4</str> 
    </processor> 
  <processor class="solr.ConcatFieldUpdateProcessorFactory"> 
      <str name="fieldName">field4</str> 
      <str name="delimiter">_</str> 
    </processor>
    <processor class="solr.LogUpdateProcessorFactory" /> 
    <processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
  1. Add that chain to the appropriate update handler
<requestHandler name="/update/csv" class="solr.UpdateRequestHandler">
         <lst name="defaults">
         <str name="stream.contentType">application/csv</str>
         <str name="update.chain">concatFields</str>    </lst> </requestHandler>

More details on the Update processors are found on the link below.
Update Request Processors

Note : Restart the Solr server and to index new documents.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文