特定の Solr アプリケーションでは、重複した結果を破棄する必要があります。id
次のように、schema.xml で一意のキーとして設定されたフィールドがあります。
<uniqueKey>id</uniqueKey>
既存のドキュメントの ID で呼び出す/update/json?commit=true
と、既存のドキュメントが適切に更新されます。ただし、呼び出す/update/json?commit=true&overwrite=false
と、同じIDで追加のドキュメントが追加されます! 既存のドキュメントの ID を持つドキュメントを破棄するように Solr を構成するにはどうすればよいですか? 属性が減価償却されているallowDups
ことに気付いたので、Solr 4.x を実行する新しいコードに導入したくありません。いずれにせよ、デフォルトはfalse
そうであるため、とにかく重複が追加される理由はわかりません。
それが重要な場合、id
フィールドは次のように定義されます。
<field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/>
明確にするために、私は更新したくないし、新しいドキュメントを作成したくありません. 新しいドキュメントを破棄したい。id
フィールドは、他のいくつかのフィールドのコンテンツのハッシュとして計算されます。したがって、この同じハッシュ (id) を持つ別のフィールドが既に存在する場合、それを更新したくなく(同じハッシュの最も古いドキュメントを常に保持する必要があります) 、新しいレコードを作成したくありません(重複)。新しいドキュメントを破棄したいだけです。
INSERT IGNORE INTO
SQL ステートメントに類似した動作を探しています。