2014-03-12 2 views
0

탄성 검색에 익숙하지 않아서 내 컬렉션에서 항목을 삭제하는 데 어려움이 있습니다. 나는 다음탄성 검색 삭제 작업

. WHERE ID = '1323' "와 created_user ="[email protected] "메시지에서 삭제이 하나 유사 질의를 필요로 내 탄성 검색 쿼리, 내가 이것을 실행, 유일한 삭제됩니다 특정 id 필드는 그 두 번째 인수 created_user을 복용하지. 내가이 문제를 해결하기 위해 도와주세요. 감사합니다

var created = "9ed8afe738aa63c28b66994cef1f83c6" 
db.delete({ 
      index: 'outboxpro', 
      type: 'message', 
      id: req.body.post_id, 
      created_user: created 
     }, function (error, resp) { 
      if (error) { 
       return next(error); 
      } 
      var data = {}; 
      console.log('delete response',resp); 
      if (resp.hits.successful < 1) { 
      data = {status: false, message: 'NO POST FOUND TO DELETE', code: 400}; 
      res.send(data); 
      } else { 
       return next({status: true, message: 'POST DELETED', data: error, code: 500}); 
      } 
}); 

//// 편집 내가 deleteByQuery 시도 다음 한이 내 코드

db.deleteByQuery({ 
    index: 'outboxpro', 
    type: 'message', 
    body:{ 
     "query": { 
      "filtered": { 
       "query": { 
        "match": { 
         "_id": { 
          "query": "Kal4AXi5R9G-IMx4GIKYMw" 
         } 
        } 
       }, 
       "filter": { 
        "and": [ 
         { 
          "term": { 
           "created_user": created 
          } 
         } 
        ] 
       } 
      } 
     } 
    } 
}, function (error, resp) { 
    if (error) { 
     return next(error); 
    } 
    console.log('post deleted'); 
}); 
+0

당신이 줄 수 당신의 매핑을 참조 할 수 있고 또한 탄력적 인 검색에서 얻은 답변? –

답변

1

삭제 API는 원하는대로 정확하게 처리 할 수 ​​있습니다.

먼저해야 할 일은 삭제할 문서를 찾는 것입니다. 따라서 '1323'의 id와 '[email protected]'의 created_user를 가진 모든 문서를 찾는 검색어를 만드십시오. 반환 된 문서에서 문서 ID를 가져와 삭제 API로 전달해야합니다.

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-delete.html

+0

당신의 도움에 감사드립니다, 나는 U와 같은 방식으로 말했다. 고마워요 .. – Dibish

2

당신은 .. elasticsearch에서 쿼리에 의해 삭제 사용하여 일치하는 검색어 문서를 삭제

http://www.elasticsearch.org/guide/en/elasticsearch/client/javascript-api/current/api-reference-1-0.html#api-deletebyquery-1-0

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-delete-by-query.html

db.deleteByQuery({ 
    index: 'outboxpro', 
    type: 'message', 
    body: { 

     "query": { 
      "filtered": { 
       "query": { 
        "match": { 
         "_id": "Kal4AXi5R9G-IMx4GIKYMw" 
        } 
       }, 
       "filter": { 
        "term": { 
         "created_user": "created" 
        } 
       } 
      } 
     } 
    }, 
    function (error, resp) { 
     if (error) { 
      return next(error); 
     } 
     console.log('post deleted'); 
    }); 
+0

귀하의 의견을 보내 주셔서 감사합니다. db.deleteByQuery 시도, 쿼리를 실행하여 모든 오류가 발생하지 않았습니다. 그러나 데이터가 삭제되지 않았습니다 – Dibish

+0

어떤 버전의 ES를 사용하고 있습니까 ?? – BlackPOP

+0

삭제해야합니다. 어떤 단계를 잘못했는지 알고 싶습니다 .pls 쿼리 u 사용 .. ..! – BlackPOP