2016-08-22 5 views
1

私は、単一の、またはグループの人間が読めるドキュメント内の重複したフレーズを検索してカウントしています。私は各文書をフレーズ/センテンスに分割し、ES文書ごとに1つ、これらのフレーズでElasticsearchインデックスを作成します。すべての重複を返さないエラーサーチコレクション(重複)検索

インデックスには707件のドキュメントがあります。私は、少なくとも21の重複した書類を持っていなければならないことを知っています。私の検索では、19の複製文書が返されています。なぜ私はいくつかの試合が行方不明になっているのか分からない。ここに私のクエリは次のとおりです。

 
{ 
    "size": 0, 
    "aggs": { 
     "duplicateCount": { 
      "terms": { 
       "field": "content", 
       "min_doc_count": 2 
      }, 
      "aggs": { 
       "duplicateDocuments": { 
        "top_hits": { 

        } 
       } 
      } 
     } 
    } 
} 

マイプロセス:

  1. はインデックス
  2. ビルド一括挿入データはインデックス
  3. 再インデックス文書
  4. 実行重複クエリへ
  5. 一括挿入ドキュメントオブジェクトの作成します(上記)
  6. 解析結果 - SUMバケット.doc_counts
  7. 削除インデックス

注:弾性検索は言葉ではなく、フレーズ/文と一致しますので、私は私のインデックスへの挿入前に、各フレーズ/文をハッシュMD5。

さらに詳しい情報を提供することができます(私の投稿は大きすぎるとは思わなかった)。

ESがすべての重複を返さないのはなぜですか?

おかげ

UPDATE:私のインデックスを作成するときに、私は1に破片プロパティを設定し、これはまだすべてではない、いくつかのより多くの重複を返すが、助けました。ドキュメントのおおよそのサイズを知っている場合

+1

あなたの質問に回答を編集しないでください。代わりに別の回答を投稿してください。 – CodeCaster

+0

解決策を回答として追加し、その回答を受け入れます。解決策を含めるタイトルまたは質問を編集しないでください。 –

答えて

0

、以下のようにそれを追加します。これはあなたの問題を解決するかどう

"aggs": { 
"productId": { 
    "terms": { 
    "field": "productId", 
    "min_doc_count": 2, 
    "size": 1000 
    } 
} 

}

をご確認ください。