1

Solr ScriptUpdateProcessor を使用して、長いデータ型のフィールド、timestamp_ms(例: 1473794840429) を solr 日付形式 yyyy-mm-ddThh:mm:ssZ に変換する必要があります。

以下は私のsolrconfig.xmlです

<processor name="script" class="solr.StatelessScriptUpdateProcessorFactory">
    <str name="script">date-update.js</str>
</processor> 

私のdate-update.jsは次のとおりです。

function processAdd(cmd) {
doc = cmd.solrDoc;  // org.apache.solr.common.SolrInputDocument
var datecheck = doc.getFieldValue("timestamp_ms");
var date1 = new Date(datecheck);  
var date2= date1.toUTCString();
doc.setField("tweet_date",date2);
}

-date2 は文字列データ型として格納されます。

コアをリロードしてドキュメントを投稿すると、次のエラーが表示されます。

org.apache.solr.common.SolrException: RunUpdateProcessor が、アトミック ドキュメントの更新操作をまだ含んでいるように見えるドキュメントを含む AddUpdateCommand を受け取りました。おそらく、この updateRequestProcessorChain から DistributedUpdateProcessorFactory が明示的に無効にされたためです。

これを解決するにはどうすればよいですか?

4

2 に答える 2

0

アトミック更新では Solrトランザクション ログを有効にする必要があるため、最初に solrconfig.xml にupdateLog 構成が設定されていることを確認します。

<updateLog>
  <str name="dir">${solr.ulog.dir:}</str>
</updateLog>
于 2016-09-18T10:38:55.427 に答える