2011-12-13 3 views
4

文書がsolrに送信され、その文書がすでにそのIDで(そのIDによって)存在する場合、新しい文書は古いものに置き換わります。Solr、既存の文書の更新をブロックする

しかし、私は自動的に文書を置き換えたくありません。ただ無視して次へ進んでください。どのようにsolrを設定できますか?

もちろん、私はそれがドキュメントをすでに持っているかどうかを調べるためにsolrに問い合わせることができますが、私は一括アップデートをするので私にとっては悪いです。これはプロセスを複雑にし、リクエスト量を増やします。

したがって、重複を無視するようにsolrを構成する方法はありますか?

+0

私の更新された回答は読んでいますか?それは役に立ちましたか? – javanna

+0

はい、それは役に立ちました。あなたの注意と助けてくれてありがとう。私は、新しい既存のドキュメントを破棄する単純なupdatehandlerを実装することで問題を解決しました。 – Alexander

答えて

7

あなたがUpdateHandlerに文書を送付しながら、同じuniqueIndexは追加要素内の属性overwrite="false"を指定して、文書の自動上書きを無効にすることができます。見てくださいhere

とにかく
<add overwrite="false"> 
    <doc> 
     <field name="id">id</field> 
    </doc> 
</add> 

これではなく、既存のものと同じidを持つ新しい文書をスキップする、Solrのに重複したドキュメントを持つことができます。私はこれがあなたが望む行動だとは思わない。

私はUpdateHandlerまたはUpdateRequestProcessorを書き込むか、solr user mailing listから得た提案に従うべきだと思います。

+0

私は設定の例を教えていただけますか?この設定をどこに置くかわかりません。 – Alexander

+0

確かに、私の更新された答えを見てください。 – javanna

+0

大変ありがとうございます – Alexander

関連する問題