2016-12-30 13 views
1

を使用して述語によって、すべての文書を削除するには、私はテーブルを持っている:方法例えばNEST

| Col1  |  Col2 | 
|:-----------|------------:| 
|  1  |   one | 
|  1  |   one | 
|  1  |   one | 
|  1  |   one | 
|  2  |   two | 
|  1  |   one | 

と私はCol1 == 1すべての文書を削除して、テーブルを取得したい:

| Col1  |  Col2 | 
|:-----------|------------:| 
|  2  |   two | 

私はいくつかのコードをしよう正しく動作しません。

ElasticClient.DeleteByQuery<ElasticContent>(del => del 
      .Index(ContentIndexName) 
      .Query(q => q 
      .Bool(b => b 
       .Must(m => m 
       .Term(t => t 
        .Field(f => f.Col1) 
        .Value("1")))))); 

特定のクエリでドキュメントのグループを削除する方法はありますか。

+1

"正しく動作しない"と定義できますか?削除された文書はありませんか?どのESのバージョンを使用していますか? – Val

+0

@Val、はい、文書は削除されません。 ESバージョン5.1.1、NEST 5.0.0を使用しています。 –

+0

シリアル化されたクエリは期待どおりに表示されますか?クエリのフィールド名はElasticsearchのフィールド名と一致しますか?クエリの削除が完了するまで待つ必要がありますか( '.WaitForCompletion()')? –

答えて

0

2.xバージョンのelasticsearchを使用している場合は、プラグインを使用できます。最初のリンクは、2.xバージョンからDeleteByQueryを削除した理由です。 2番目のリンクは、それをインストールして使用する方法です。

https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/delete-by-query-plugin-reason.html

https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/delete-by-query-usage.html

あなたはバージョン5.xを使用している場合は、再度追加されており、通常のようにそれを使用することができるはずです。あなたのバージョンをもう一度確認します。