“기존 주제로 이동” 검색이 조용히 실패하지만 사이트 검색은 정상 작동

안녕하세요,

“기존 주제로 이동” 모달에서 문제가 발생하고 있습니다(이전에 제 사이트에서는 정상 작동했으므로 회귀 문제로 보입니다):

  • **“주제 검색”**에 입력해도 결과가 정제되지 않습니다
  • 네트워크 요청은 올바른 매개변수로 200을 반환합니다
  • 브라우저 콘솔에 JS 오류가 없습니다
  • 사이트 전체 /search는 정상적으로 작동합니다
  • 재빌드 후에도 문제가 지속되고 있습니다

발생 중인 요청 예시:
/search/query?term=Eve Park&type_filter=topic&search_for_id=true&restrict_to_archetype=regular

선택 목록은 정적인 주제 집합으로 남아 있으며 term이 변해도 변하지 않는 것으로 보입니다.


클라이언트 측 디버깅을 통해 처음에는 Postgres에서 pg_trgm이 활성화되지 않았기 때문일 수 있다고 의심했지만, 진행하기 전에 확인하고 싶었습니다.

다음 명령어를 실행했습니다:

./launcher enter app
rails c
ActiveRecord::Base.connection.execute(
  "SELECT extname FROM pg_extension WHERE extname = 'pg_trgm';"
).to_a

이 진단은 명령어가 다음과 같이 반환된 경우 유효할 것입니다:

[]

그러나 실제로는 다음과 같이 반환되었습니다:

[{"extname"=>"pg_trgm"}]

따라서 pg_trgm활성화되어 있으며, 이것이 근본 원인으로 보이지 않습니다.


따라서 다음 명령어를 실행할 예정입니다:

./launcher enter app
rake search:reindex

이것은 제 포럼의 특정 카테고리가 매우 많은 수의 주제를 가지고 있기 때문에 관련이 있을 수 있습니다.


혼란스러운 점은 다음과 같습니다:

  • Discourse는 그 외에는 정상적으로 작동합니다
  • 전체 /search는 정상적으로 작동합니다
  • 주제 이동 자동완성은 경고 없이 조용히 기능이 저하됩니다

디버깅의 일환으로 search prefer recent posts 설정을 활성화하고 브라우저를 새로고침했습니다. 이는 동작에 영향을 미치지 않았습니다 - “기존 주제로 이동” 검색은 여전히 입력해도 결과를 정제하지 않았습니다.

해당 설정은 전체 /search 랭킹에만 영향을 미치고 주제 선택기 엔드포인트에는 영향을 미치지 않으므로, 이 문제는 일반 검색 성능이 아니라 /search/query에 특화된 것인 것으로 보입니다.


rake search:reindex를 실행하기 전에 추론을 점검하고 싶었습니다:

주제 이동 선택기는 search_for_id=true가 포함된 /search/query를 사용하며, 이는 전체 /search 엔드포인트보다 인덱스 조회에 더 직접적으로 의존합니다. 따라서 부분적으로 오래되었거나 일관성이 없는 검색 인덱스는 전체 검색이 정상으로 보이는 동안에도 선택기에 영향을 미칠 수 있습니다.

다음 사항들을 고려할 때:

  • 엔드포인트가 호출되고,
  • 응답이 200을 반환하며,
  • pg_trgm이 활성화되어 있고,
  • search prefer recent posts를 토글해도 효과가 없으므로,

인덱스 불일치를 배제하기 위한 다음 논리적 단계로 완전한 rake search:reindex가 보입니다. 또한, 어떤 경고나 피드백도 없다는 점은 관리자 UX 측면에서 특히 혼란을 유발합니다.

1개의 좋아요

제 경험상 그 검색은 결코 신뢰할 수 없었습니다. 예를 들어, 이 보고서도 있습니다: Topic can't be found when searching for a topic (verbatim) when moving a post.
보통은 주제 ID를 입력한 뒤 사이트의 검색 기능을 이용해 찾습니다.

1개의 좋아요

감사합니다. 도움이 되는 맥락이었고, 링크된 보고서도 매우 유사해 보입니다.

제 경우에서 특이한 점은, 원문을 작성했을 당시 실제로 ‘반응 없음’ 상태였다는 것입니다. /search/queryterm=Eve Park 등으로 호출되어 200 응답을 반환했지만, 선택자 목록은 정적 상태로 남아 전혀 정제되지 않았습니다.

그 이후로는, (제 안전 모드 녹화에서 보여준 바와 같은) 의도된 ‘반응형 검색’ 동작을 다른 브라우저 창과 나란히 재현할 수 있게 되었습니다.

저는 원문에서 설명한 것 외에는 서버 측에서 아무것도 변경하지 않았기 때문에, 현재 제 추측은 다음과 같습니다:

  • 클라이언트 측 상태 문제(캐시된 자산 / 하드 리프레시 차이 / 테마 컴포넌트 상호작용), 또는
  • 특정 용어가 예상대로 반환되지 않는 쿼리 엣지 케이스(원문 일치 / 구두점 / 스탑워드 / 순서)로, 귀하가 링크한 “verbatim move search can’t find topic” 보고서와 유사합니다.

다음 단계로, ‘반응 없음’ 경우와 ‘반응형’ 경우(같은 용어)의 /search/query 실제 JSON 응답을 비교할 예정입니다. 또한 테마를 켜고 껐는지에 따라 안전 모드를 다시 실행하여 상관관계가 있는지 확인하겠습니다.

move-topic 선택자가 사용하는 정확한 매칭 규칙(전체 /search와 비교했을 때)이나 그 차이점에 대해 아시는 분이 있다면 알려주시면 매우 감사하겠습니다. 이것이 알려진 제한 사항/엣지 케이스인지, 아니면 회귀(regression)인지 파악하려 하고 있습니다.