curl 'http://localhost/solr/collection/update?commit=true'
-H 'Content-type:application/json'
-d
'[
{
"id":"11111",
"price":{"set":1000}
}
]'
id:11111が存在する場合、価格の値が更新されます。 これは問題ありません。solrが更新中に新しい文書を追加するのはなぜですか?
id:11111が存在しない場合、新しい文書がsolrインデックスに作成されます。この動作は望ましくありません。私は、次のようなテキストでエラーが発生すると予想しています。更新しようとした文書が存在しません。 何が間違っているのか分かりません。
ソルバージョン:4.8.0。 schema.xmlの
パート:
<field name="id" type="string" indexed="true" stored="true" required="true"/>
<uniqueKey>id</uniqueKey>
フィードバックがありますか?なぜあなたは予想された動作をしないのか理解していますか?また、solrはなぜ新しいドキュメントを '更新中'追加しますか? – EricLavault
あなたの答えに私がアドバイスしたときに私のワークフローを変更することに決めました。 私はこの動作がなぜデフォルトであるのか不思議です。なぜそれは安らかではないのですか? – Dimitry
これは/ updateハンドラ関数がインデックス全体を更新することであり、APIはadd/replace、delete、commit、optimizeなどの操作を提供するという点で安心しています。いくつかの操作を実行する可能性があると思いますadd、delete&commitWithinなど)を1回のバッチで実行できます。 – EricLavault