NiFi PutSolrContentStream如何添加路径参数?

时间:2018-01-15 23:22:14

标签: curl solr apache-nifi

我正在运行3节点SOLR云,并通过NiFi连接到zookeeper。我想知道如何添加从常规solr更新到PutSOLRContentStream处理器的路径参数。

我的工作卷曲:

/solr/my_collection/update&stream.file=/opt/files/$file&commit=true&separator=%7C&stream.contentType=text/csv;charset=utf-8&fieldnames=...

我从PutSOLRContentStream处理器获得的错误:(取自nifi-app.log)

org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error 
from server at 
http://my_solr_server:8983/solr/my_collection_shard#: Expected mime type 
application/octet-stream but got text/html. <html>


<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing 
/solr/my_collection_shard#/update/extract&amp;commit=true&amp;separator=%7C&amp;
charset=utf-8&amp;fieldnames=... Reason:
<pre>    Not Found</pre></p>

如何将curl转换为工作的PutSOLRContentStreamProcessor? (具体来说,如何正确填写处理器中的“内容流路径”和“内容类型”字段,以及是否需要添加任何其他字段)

2 个答案:

答案 0 :(得分:0)

内容流路径应该只是更新处理程序的路径,例如“/ update / extract”。

对于要在请求中发送的任何其他参数,请通过单击属性窗口右上角的+图标添加用户定义的属性。

以下是一个例子:

https://community.hortonworks.com/articles/42210/using-solrs-extracting-request-handler-with-apache.html

答案 1 :(得分:0)

我在配置PutSolrContentStreamProcessor时遇到类似的问题。我有一个本地运行的标准solr服务器,一个名为:party的solr集合,我正在该核心中索引公司/参与方的json文档。

以下是对我有用的配置。

enter image description here

请注意,Solr位置包含 Solr集合的完整路径http://localhost:8983/solr/party,并且将Collection值设置为“ party”或将该值保留为空没有任何作用。 。基本上,您需要在“ SolrLocation ”中正确定义完整的Solr路径,才能正常工作。

Solr版本:7.6

Nifi版本:1.10.0-快照