1

Solr 4 で Solarium を使用しており、複数の基準で削除する必要があります。ドキュメントは、クエリで削除する方法を示しています

$client = new Solarium\Client($config);

$update = $client->createUpdate();

$update->addDeleteQuery('type:comment');
$update->addCommit();

$result = $client->update($update);

これはうまくいきます。しかし、例えば writer_id:123 などの別の基準が必要な場合は、どうすればよいかわかりません。別の addDeleteQuery 行を追加すると、最終的な生のクエリは次のようになります。

<update>

  <delete>
    <query>type:comment</query>
  </delete>

  <delete>
    <query>writer_id:123</query>
  </delete>

  <commit/>

</update>

これにより、それらが個別に削除されるようです。それが問題かどうかはわかりませんが、スキーマの defaultOperator は AND です。http://www.solarium-project.org/forums/topic/change-operator/から、まだ簡単にオーバーライドできないようです。そこにソリューションを適用して削除する方法がわかりません。それがここでも機能する場合。

複数の基準を使用してsolrのアイテムを削除するにはどうすればよいですか?

4

2 に答える 2

3

それを単一のクエリにクラブ化してみてください<delete><query>type:comment AND writer_id:123</query></delete>

于 2013-06-03T09:10:28.860 に答える
0

次のように、requestDispatchers の下の requestParsers 構成で enableStreamBody を true に設定することにより、solrconfig.xml ファイルを更新して、Solr クエリを介したドキュメントの削除を許可することに注意してください。

<requestParsers enableRemoteStreaming="true"
                    **enableStreamBody="true"**
                    multipartUploadLimitInKB="2048000"
                    formdataUploadLimitInKB="2048"
                    addHttpRequestToContext="false"/>
于 2018-09-25T09:03:24.357 に答える