Yahoo Groups 가져오기 시 대량으로 주제를 부모 주제로 병합하는 방법?

Yahoo Groups에서 수십만 개의 오래된 게시물을 Discourse로 가져온 후, 동일한 스레드여야 할 많은 단절된 토픽이 남게 되었습니다. 직관적인 해결책은 이 중 여러 토픽을 선택하거나 하이라이트한 후 부모 토픽으로 드래그하는 방식일 것 같습니다.

아니면 더 나은 방법은, 병합하려는 모든 토픽을 선택한 후 시스템이 가장 오래된 날짜의 메시지를 부모로, 기존 날짜를 기준으로 순서를 정하여 단일 토픽으로 통합하도록 하는 것입니다.

예를 들어, 제 메시지는 대부분 다음과 같은 형태입니다:

  • Some Topic Name
  • [mailing list name] Some Topic Name
  • [mailing list name] Some Topic Name
  • [mailing list name] Some Topic Name
  • [mailing list name] Some Topic Name
  • [mailing list name] Some Topic Name
  • [mailing list name] Some Topic Name
  • [mailing list name] Some Topic Name

즉, 기본적으로 이 모든 것을 선택한 후 오른쪽의 렌치 도구를 사용하여 "병합"을 클릭하면 목표를 달성할 수 있어야 합니다.

이 기능이 누락된 건가요, 아니면 제가 무언가를 놓치고 있는 건가요?

Discourse에서는 게시물을 새 주제나 기존 주제로 이동할 수 있습니다. 이것이 여러분의 문제에 대한 해결책인지 확신은 없지만, 만약 그렇다면 게시물을 이동하는 방법에 대한 가이드가 여기에 있습니다: Moving posts to a new or existing topic.

그 부분을 짚어 주셔서 감사합니다. 불행히도 해당 기능이 어떻게 작동하는지 이미 알고 있었습니다. 진짜 문제는 그 튜토리얼에서 시연하고 있는 것이 주제(topic) 내부의 게시물(post)을 다루는 방법이라는 점입니다.

동일한 주제에 대해 제목이 같거나 약간 다른 100개의 게시물이 있다고 상상해 보세요.

문제는 mbox / Yahoo Groups 가져오기(import)가 정확히 올바르게 작동하지 않았다는 것입니다. 아마도 이메일의 ID가 부적절해서 그런 것일 수도 있고, 다른 원인일 수도 있지만, 그 결과 우리 중 일부는 수천 개에서 수만 개의 메시지가 서로 잘못 분리되어 있는 상태입니다. 이들을 병합할 수 있는 방법이 필요합니다.

불행히도 제목을 기준으로 한 자동 병합은 최적의 방법이 아닐 가능성이 큽니다. 아마도 직접 눈으로 확인하여 수동으로 여러 개를 선택한 후, 시스템에 이 모든 것을 하나의 공통 주제로 병합하라고 지시해야 할 것입니다.

이를 수행하기에 가장 좋은(실제로는 유일한) 장소는 카테고리의 실제 주제 목록 뷰(topical view)인 것 같습니다. 가이드에서 제시하는 방법으로 수행하는 것은 엄청나게 부담스럽고 실현 불가능합니다. 왜냐하면 게시물 단 한 개만 있는 주제에 들어가야 하고, 그 게시물을 선택하는 과정을 거쳐야 하며, 그 다음 상위 게시물을 분리한 후 결합해야 하기 때문입니다. 이미 동일한 제목을 가진 게시물이 수십 개 또는 수백 개에 달하는 경우 이 과정은 더욱 복잡해집니다.

따라서 우리가 필요한 것은 주제 뷰 내에서 “게시물 선택…” 기능이 작동하는 방식과 유사하게 작동하는, 카테고리 뷰의 “주제 선택…” 기능입니다.

이해가 되시나요?

지금 당신은 갈림길에 서 있는 것 같습니다. 오래된 야후 메시지를 하나의 주제 안에 정확하고 깔끔하게 포함시키는 것이 당신에게 얼마나 중요한지 결정해야 합니다.

만약 그것이 중요하다면, 한 단계 뒤로 물러나서 mbox 파일을 수정하는 것이 제 제안입니다. 그리고 나서 미리 준비한 작은 묶음으로 신중하게 가져오세요.

이를 위한 가장 좋은 방법은 아마도 Mozilla Thunderbird로 가져와서 거기에서 조정하는 것입니다. Thunderbird의 각 폴더는 자체 mbox 파일이므로, 관련 메시지를 모두 하나의 폴더로 옮긴 다음, 해당 mbox 파일을 텍스트 편집기로 열고 검색 및 치환을 수행하여 메시지 ID를 수정할 수 있습니다. 이 메시지 ID는 가져오기 도구가 어떤 메시지가 하나의 주제에 속하는지 판단하는 데 사용됩니다.

정말 가장 좋은 해결책은 시간으로 되돌아가서 Outlook을 만든 프로그래머들에게 통용되는 이메일 표준을 좀 더 열심히 따르도록 설득하는 것입니다.

한 가지 궁금한 점이 있습니다: @pfaffman님은 현재 이런 작업을 프로그래밍 방식으로 수행할 수 있는 방법이 있는지 알고 계신가요? 저는 단순히 "같은 제목 + 이 접두어가 붙은 모든 토픽을 병합한다"는 일괄 처리 방식을 사용할 수도 있습니다.

제가 말하는 것은 바로 위에 제가 올린 첫 번째 게시글에서 언급한 내용과 같습니다. "Some Topic Name"이라는 제목의 일부 토픽이 "[mailing list name]"이라는 접두어를 붙여 사용되고 있다는 점을 지적했었죠. 기본적으로 “핵” 병합 옵션을 사용하여 관련이 있을 가능성이 높은 모든 항목을 한꺼번에 가져온 뒤, 사용자가 우연히 같은 토픽 이름/제목으로 사용한 경우를 구분하여 분리하는 방식으로 진행할 수 있습니다…

ㅋㅋ, @tobiaseigen 좋은 제안이긴 한데, 수십만 통의 메시지 중에서 이렇게 고된 작업을 할 시간을 찾기는 현실적으로 불가능해. mbox 파일만 해도 500MB가 넘거든. 다른 모더레이터들도 함께 도와줄 수 있으니, 그냥 디스코urs 안에서 서서히 문제를 해결해 나가는 쪽으로 운을 시험해 볼 거야. 내가 마지막으로 질문했던 것처럼 다른 제안이 나올 수도 있고, 그게 없다면 플러그인을 구현하는 방향으로 진행할 계획이야.

처음부터 다시 시작해서 가져오기(import) 단계에서 올바르게 처리하는 것을 권장합니다. @tobiaseigen님이 추천하신 방법은 유망해 보입니다. 제가 대량의 mbox 가져오기를 한 지 오래되어, 여러분이 설명하신 것과 같은 문제를 해결하기 위해 사전에 상당한 작업을 수행했던 기억이 납니다. 만약 그 방법이 불가능하다면, rails 쪽에서 함께 묶어야 한다고 생각되는 모든 게시물을 어떻게든 수집한 뒤, 날짜순으로 정렬하고 새로운 토픽을 생성(또는 첫 번째 토픽을 선택)하여 모든 게시물을 해당 새로운 토픽으로 이동시키는 방식을 시도해 볼 수 있습니다.

실제 코드를 작성하기까지는 시간이 좀 걸릴 것 같습니다.

수입 이후로 포럼에서 참여가 꽤 많았기 때문에, 지금 시점에서 '처음부터 다시 시작’은 현실적으로 불가능하다고 생각합니다. 대량 삭제 같은 작업을 하는 것은 좀 무서워서 쉽게 손대기 어렵고, 관리자들도 이미 수입된 데이터를 다듬고 계정을 병합하는 등 작업을 시작했습니다.

나중에 제가 직접 Rails 메서드를 조사해서 방법을 찾아내면 공유하겠습니다. 물론 제가 시도해 보기 전에 누군가 제안을 해주신다면 그걸 따르겠습니다. 만약 방법이 떠오르지 않으면, 이번 연휴 기간 동안은 그냥 ‘지저분한’ 상태로 두어 보겠습니다. 이 작은 문제를 해결할 때까지요.