언어별로 올바른 결과를 반환하도록 ElasticPress를 구성하는 방법
WPML과 ElasticPress를 실행하는 WordPress 사이트에서 다국어 검색을 설정하는 방법을 알아보세요. WPML ElasticPress 호환성 플러그인은 사이트의 각 언어에 대해 별도의 Elasticsearch 인덱스를 구축하므로, 프랑스어 버전에서 검색하는 방문자는 영어 또는 일본어 결과가 섞이지 않은 프랑스어 결과를 얻게 됩니다. 이 페이지에서는 설정, 언어별 동기화, 그리고 가장 중요한 검색이 모든 언어에서 올바른 결과를 반환하는지 확인하는 방법에 대해 설명합니다.
ElasticPress 통합에는 번역할 항목이 없습니다. 호환성 플러그인을 사용하면 ElasticPress가 올바른 언어의 결과를 자동으로 반환합니다. 필요한 구성 요소를 설치하고, 초기 동기화를 실행하고, 결과가 올바르게 표시되는지 확인하기만 하면 됩니다.
시작하기 전에
동일한 사이트에 다음 플러그인을 설치하고 활성화하세요.
- ElasticPress. WordPress.org에서 사용할 수 있는 10up의 무료 오픈 소스 플러그인입니다.
- WPML 코어 및 WPML 문자열 번역.
- WPML ElasticPress. 호환성 플러그인입니다. WPML 계정 다운로드 페이지에서 다운로드하세요.
자체 호스팅 또는 ElasticPress.io, Elastic Cloud, AWS OpenSearch와 같은 관리형 서비스 등 Elasticsearch 엔드포인트도 필요합니다. Elasticsearch 호스트에 맞게 ElasticPress를 구성하고, WPML 계층을 추가하기 전에 단일 언어 사이트에서 성공적으로 인덱싱되는지 확인하세요.
첫 번째 동기화를 실행하기 전에 WPML 언어를 구성하세요.
언어별 인덱싱 작동 방식
WPML ElasticPress는 사이트의 각 언어에 대해 별도의 Elasticsearch 인덱스를 생성합니다. 각 언어의 인덱스에는 다음이 포함됩니다.
- 모든 번역 가능한 포스트 유형에 대한 해당 언어로의 번역.
- 번역이 없을 때 기본 언어로 대체되도록 설정된 포스트 유형에 대한 기본 언어 글.
- 번역 불가능한 글의 복사본. 방문자의 언어와 관계없이 검색 결과에 표시될 수 있도록 모든 언어의 인덱스에 이 복사본이 포함됩니다.
언어 인덱스의 모든 문서는 해당 언어로 분석됩니다. 불용어, 어간 추출, 약어, 복수형 및 시제 처리는 모두 언어별로 다릅니다. 이로 인해 프랑스어 검색은 프랑스어 어간과 일치하고 일본어 검색은 일본어 형태론과 일치하게 됩니다. 언어별 분석이 없다면 검색 엔진은 한 언어의 규칙을 다른 모든 언어의 텍스트에 적용할 것입니다.
방문자가 검색할 때마다 WPML ElasticPress는 쿼리를 일치하는 언어 인덱스로 라우팅합니다. 관련성 순위 지정이 시작되기 전에 결과 풀이 이미 올바른 언어로 필터링됩니다.
초기 동기화 실행
네 개의 플러그인이 활성화되고 ElasticPress에 Elasticsearch 엔드포인트가 구성된 상태에서 초기 동기화를 실행하세요.
- WordPress 관리 화면에서 ElasticPress > Sync를 엽니다.
- Start Sync를 클릭하세요.
WPML ElasticPress는 언어당 하나의 동기화를 트리거하고 언어별 인덱스를 차례로 구축합니다. 대규모 사이트에서는 몇 시간이 걸릴 수 있으며, 동기화가 실행되는 동안 페이지에 진행 상황이 보고됩니다.
WPML ElasticPress 1.0에서 2.0 이상으로 업데이트하는 경우 다시 인덱싱하세요. 버전 2.0에서 언어별 인덱스가 도입되면서 인덱스 형식이 변경되었습니다.
초기 동기화 후에는 콘텐츠 업데이트가 올바른 인덱스로 자동 유입됩니다. 글을 생성, 수정 또는 삭제할 때마다 WPML ElasticPress는 해당 글의 언어 또는 포스트 유형의 번역 설정에 따라 백그라운드에서 해당 언어 인덱스를 업데이트합니다.
WP-CLI를 사용하여 특정 언어 인덱싱
대규모 사이트, 예약된 작업, 배포 스크립트 또는 관리 화면 UI를 사용할 수 없는 워크플로의 경우, WPML ElasticPress는 ElasticPress 자체 CLI 동기화를 래핑하고 언어 선택을 위한 --post-lang 플래그를 추가하는 WP-CLI 명령(wp wpml_elasticpress sync)을 제공합니다.
영어 글에 대해서만 초기 동기화 실행:
wp wpml_elasticpress sync --setup --post-type=post --post-lang=en
--setup 플래그는 다시 구축하기 전에 기존 인덱스를 지웁니다. 이 명령을 실행한 후 영어 검색은 영어 결과를 반환하지만, 다른 언어의 검색은 인덱스가 아직 구축되지 않았으므로 아무것도 반환하지 않습니다.
기존 인덱스를 지우지 않고 두 번째 언어 추가:
wp wpml_elasticpress sync --post-type=post --post-lang=fr
추가할 각 언어에 대해 이 과정을 반복하세요. 이전에 인덱싱된 언어가 유지되도록 --setup를 생략합니다.
한 번의 실행으로 여러 언어 동기화:
wp wpml_elasticpress sync --post-lang=en,es
메모리가 부족한 경우 배치 크기 조정:
wp wpml_elasticpress sync --per-page=200
기본 배치 크기는 350이며, 이 값을 낮추면 메모리가 제한된 서버에서 도움이 됩니다.
처음부터 모든 인덱스 다시 구축:
wp wpml_elasticpress sync --setup
이렇게 하면 모든 언어 인덱스가 지워지고 모두 다시 구축됩니다. 모든 언어에서 무언가 잘못되어 보이거나 주요 업그레이드 후에 이 명령을 사용하세요.
ElasticPress 검색이 올바른 언어로 콘텐츠를 반환하는지 확인하는 방법
기술적인 동기화 과정은 간단하며, 이 페이지의 핵심은 확인 작업에 있습니다. 초기 동기화가 완료된 후, 그리고 검색 동작에 영향을 미치는 콘텐츠나 설정을 변경할 때마다 다음 확인 단계를 진행하세요.
1. 검색 시 각 언어에서 동일한 언어의 결과 반환
프런트엔드에서 언어 전환기를 사용하여 각 언어로 차례로 전환하고 번역된 형태로 존재한다고 알고 있는 용어를 검색하세요.
- 통과. 결과 페이지에 해당 언어의 글만 나열됩니다.
- 실패. 동일한 언어의 일치 항목과 함께 다른 언어의 결과가 표시됩니다. 해당 언어에 대한 동기화가 완료되지 않았을 수 있습니다. ElasticPress > Sync에서 오류를 확인하고 언어별 WP-CLI 명령을 다시 실행하세요.
2. 원본 언어로만 작성된 콘텐츠는 다른 언어에서 검색 결과 0건 반환
사이트의 다른 언어로 번역되지 않고 기본 언어로만 존재하는 글을 선택하세요. 기본 언어가 아닌 버전의 사이트에서 해당 글의 문구를 검색하세요.
- 통과. 결과 0건. 해당 글은 방문자의 언어로 번역되지 않았으므로 표시되지 않아야 합니다.
- 실패. 글이 결과에 표시됩니다. 이는 일반적으로 WPML > 설정 > 포스트 유형 번역에서 포스트 유형이 기본 언어로 대체되도록 설정되어 있음을 의미합니다. 이는 WPML 수준의 설정이며 버그가 아닙니다. 대체를 의도하지 않았다면 설정을 변경하세요.
3. 관련 글이 동일한 언어로 유지됨
프런트엔드에서 번역된 글을 엽니다. Related Posts 위젯에는 동일한 언어의 다른 글만 나열되어야 합니다.
- 통과. 모든 관련 글이 현재 페이지와 동일한 언어의 콘텐츠로 연결됩니다.
- 실패. 다른 언어의 관련 글이 표시됩니다. ElasticPress > Features에서 Related Posts 기능이 활성화되어 있고 현재 언어에 대한 언어 인덱스 동기화가 완료되었는지 확인하세요.
4. 언어별 문서 검색 필터
ElasticPress에서 Documents 기능이 활성화된 경우: 글의 원본 언어 버전에 번역된 PDF를 업로드한 다음, 해당 번역본에 다른 언어의 PDF를 업로드하세요. 번역된 PDF에만 나타나는 문구를 검색하세요.
- 통과. 일치하는 언어의 프런트엔드에서 검색하면 올바른 PDF가 반환됩니다. 원본 언어 검색에서는 번역된 PDF가 반환되지 않으며 그 반대의 경우도 마찬가지입니다.
- 실패. 다른 언어의 PDF가 결과에 표시됩니다. Documents 기능을 활성화한 후 다시 동기화하세요.
wp wpml_elasticpress sync --setup명령은 문서 인덱싱과 함께 모든 인덱스를 다시 구축합니다.
5. 백엔드 검색(용어, 댓글, 사용자) 언어별 필터링
ElasticPress > Features에서 Terms, Comments 또는 Users 기능을 활성화한 경우, WordPress 관리 화면에서 검색하여 현재 관리 화면 언어별로 결과가 필터링되는지 확인하세요. 이는 다국어 사이트의 백엔드를 검색하는 사용자에게 영향을 미칩니다.
6. 멀티사이트 동기화 시 형제 사이트 인덱스가 지워지지 않음
멀티사이트 네트워크에서 WPML과 ElasticPress를 실행하는 경우, 한 사이트에서 인덱스 동기화를 실행한 다음 네트워크의 다른 사이트를 확인하세요. 해당 인덱스는 그대로 유지되어야 합니다.
- 통과. 한 사이트를 인덱싱해도 형제 사이트의 인덱스는 그대로 유지됩니다.
- 실패. 형제 인덱스가 비어 있습니다. 중지하고 영향을 받는 사이트에서 동기화를 다시 실행한 후 WPML 지원팀에 문제를 보고하여 과거의 멀티사이트 문제인지 새로운 문제인지 확인할 수 있도록 하세요.
위의 모든 확인 단계를 통과했다면 다국어 검색이 설계된 대로 작동하는 것입니다.
지원되는 ElasticPress 기능
현재 WPML ElasticPress는 다음 ElasticPress 기능이 언어를 인식하도록 지원합니다.
- Post Search. 글, 페이지 및 사용자 정의 글 유형 전반에 걸친 프런트엔드 검색입니다.
- Related Posts. 관련 글 위젯이 동일한 언어의 일치 항목으로 필터링됩니다.
- Documents. 첨부된 PDF,
.docx,.pptx및 기타 파일 형식 내에서 검색합니다. - Terms, Comments, and Users. 백엔드 검색입니다.
ElasticPress의 WooCommerce 전용 검색 기능(상품 검색, 패싯 상품 필터링, 카탈로그 전반의 즉각적인 상품 검색)은 현재 다국어를 지원하지 않습니다. WooCommerce 검색에 대한 다국어 지원은 WPML 로드맵에 포함되어 있으며, 해당 기능이 제공될 때까지 다국어 사이트의 WooCommerce 검색은 ElasticPress가 아닌 WPML의 표준 WooCommerce Multilingual 처리를 통해 이루어집니다.
일반적인 문제
- 새 ElasticPress 기능을 활성화한 후 동기화가 실행되지 않음. ElasticPress > Features에서 Documents 또는 Related Posts를 활성화한다고 해서 해당 문서가 인덱스에 소급하여 추가되지는 않습니다. 기능을 전환한 후 다시 동기화하세요.
- 주요 변경 후
--setup없이 WP-CLI 동기화 실행. 번역 가능한 포스트 유형이나 활성화된 기능을 변경했거나 WPML ElasticPress를 주요 버전 경계를 넘어 업그레이드한 경우,wp wpml_elasticpress sync --setup를 실행하여 모든 인덱스를 처음부터 다시 구축하세요. - 테마 검색 결과 템플릿이 ElasticPress의 필터를 우회함. 일부 사용자 정의 테마는 ElasticPress를 거치지 않는 자체 검색 결과 쿼리를 구현합니다. 프런트엔드에서만 결과가 잘못 표시되고 관리 화면 확인은 통과한다면 테마 템플릿을 업데이트해야 할 수 있습니다.
- WooCommerce 상품 검색 시 여러 언어가 섞인 결과 반환. 이는 동기화 문제가 아닙니다. 위에서 언급한 WooCommerce 지원 범위의 한계 때문입니다. 당분간은 WooCommerce Multilingual의 표준 처리를 통해 상품 검색을 라우팅하세요.
- Documents 텍스트가 검색에 나타나지 않음. ElasticPress > Features에서 Documents 기능이 활성화되어 있고 해당 기능을 활성화한 후 동기화가 실행되었는지 확인하세요.
작성자: Amir · 마지막 업데이트: 2026년 7월 2일
작성자: Amir · 마지막 업데이트: 2026년 7월 2일