HOME TIP & TECH

TIP & TECH

TIP & TECH 상세
manticore 를 docker 로 사용하려고 할때 쓸 수 있는 몇가지 TIP

onionmixer 2025-08-20 11:11:43 9

일단 이 문서는 mediawiki 를 HOST 에 직접 설치하고, manticore 는 docker 로 설치한 경우에 대한 문서입니다. 관련된 제반 사항을 참고해 주시기 바랍니다.

또한 이 글을 작성하는 시점에서는 mediawiki 1.44 에서 SphinxSearch extension 이 정상 동작하지 않는 상황입니다. 2025년 8월 19일 기준 mediawiki 는 1.43 이 LTS 입니다... (그래서 1.43 까지만 patch 가 있는지도 모르겠네요)

저는 sphinx 가 아니라 manticore 를 사용하기 때문에 sphinx 와는 조금 차이가 있을 수 있음을 참고해주세요.


1. SphinxSearch 에서 제공하는 sphinx.conf

https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/SphinxSearch/+/7fcb468d77a2dde0f1085e8d6feec5005eb31233

일단 URL 에는 SphinxSearch Extension 에서 사용하기 위한 몇가지 patch 및 검색엔진을 위한 설정파일등이 있습니다.

 

2. manticore 의 SQL 연결

client 는 mariadb cli 를 이용해서 접속할 수 있습니다. 다만 manticore 의 SQL 인터페이스는 일반적인 RDBMS 수준의 SQL 을 지원하지 못합니다. 해당되는 부분은 반드시 참고해두어야 합니다.

==검색 예제==
SELECT id, title FROM idx_transmedia WHERE MATCH('Smalltalk') LIMIT 5;
SELECT id, title, page_namespace, timestamp FROM idx_transmedia WHERE MATCH('smalltalk') LIMIT 5;
SELECT id, title, content FROM idx_transmedia WHERE id = 3113;
SELECT id, title FROM idx_transmedia WHERE id BETWEEN 1000 AND 2000 AND MATCH('programming');

==제목만 검색==
SELECT id, title FROM idx_transmedia WHERE MATCH('@title Smalltalk') LIMIT 5;

==본문만 검색==
SELECT id, title FROM idx_transmedia WHERE MATCH('@content Smalltalk') LIMIT 5;

==여러 필드에 서로 다른 키워드 검색==
SELECT id, title FROM idx_transmedia WHERE MATCH('@title programming @content java') LIMIT 5;

==상태보기==
show status;

위의 SQL 에서 보이다시피 일반적인 SQL 에서의 비교구문 또는 LIKE 구문은 사용되지 않습니다. manticore 에서 생성된 index 검색용 query 에는 WHERE 이후에 MATCH 구문으 사용해야 합니다.


3. manticore docker 의 사용팁

manticore 의 docker instance name 을 manticore-transmedia 로 정의하겠습니다.

3.1 manticore log 추적

docker compose logs -f manticore-transmedia
docker compose logs --follow manticore-transmedia


3.2 manticore docker instance 안쪽의 searchd 에 접속(SQL)

docker compose exec manticore-transmedia mysql -h192.168.0.3 -P3306 -utransmedia -p wikidbtransmedia


3.3 manticore docker instance 의 FULL index 생성

docker compose exec manticore-transmedia indexer idx_transmedia --rotate


3.4 manticore docker instance 의 index 상태 확인

docker compose exec manticore-transmedia mysql -h127.0.0.1 -P9306 -e "SHOW TABLES; SELECT COUNT(*) FROM idx_transmedia;"

댓글 0개

이전글/다음글 목록
다음 다빈치 리졸브의 편집에서 퍼포먼스를 올리는 방법