<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Mediawiki_SphinxSearch_Extension</id>
	<title>Mediawiki SphinxSearch Extension - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Mediawiki_SphinxSearch_Extension"/>
	<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=Mediawiki_SphinxSearch_Extension&amp;action=history"/>
	<updated>2026-05-07T16:08:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://workspace.onionmixer.net/wiki/index.php?title=Mediawiki_SphinxSearch_Extension&amp;diff=1855&amp;oldid=prev</id>
		<title>Onionmixer: 오타 수정</title>
		<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=Mediawiki_SphinxSearch_Extension&amp;diff=1855&amp;oldid=prev"/>
		<updated>2025-10-03T09:21:34Z</updated>

		<summary type="html">&lt;p&gt;오타 수정&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:21, 3 October 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;mediaiwki 1.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;34 &lt;/del&gt;이상에서 SphinxSearch Extension 사용하기&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;mediaiwki 1.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;43 &lt;/ins&gt;이상에서 SphinxSearch Extension 사용하기&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==배경사양==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==배경사양==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
	<entry>
		<id>https://workspace.onionmixer.net/wiki/index.php?title=Mediawiki_SphinxSearch_Extension&amp;diff=1854&amp;oldid=prev</id>
		<title>Onionmixer: mediaiwki 1.34 이상에서 SphinxSearch Extension 사용하기 내용 추가</title>
		<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=Mediawiki_SphinxSearch_Extension&amp;diff=1854&amp;oldid=prev"/>
		<updated>2025-10-01T15:14:33Z</updated>

		<summary type="html">&lt;p&gt;mediaiwki 1.34 이상에서 SphinxSearch Extension 사용하기 내용 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;mediaiwki 1.34 이상에서 SphinxSearch Extension 사용하기&lt;br /&gt;
&lt;br /&gt;
==배경사양==&lt;br /&gt;
&lt;br /&gt;
* linux server&lt;br /&gt;
* mediawiki 1.43+&lt;br /&gt;
* mysql(mariadb)&lt;br /&gt;
* sphinxsearch patch 버전 + 개량버전&lt;br /&gt;
* manticore docker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==소개==&lt;br /&gt;
&lt;br /&gt;
mediawiki 는 wikipedia 의 기본이 되는 wiki 시스템으로서 이미 유명한 시스템입니다. 이번 문서에서는 mysql 로 운영되는 mediawiki 를 대상으로 검색엔진인 manticore 를 연동하는 방법을 설명합니다. mediawiki 의 설치는 거의 다루지 않으며 mediawiki 는 스스로 세팅할 수 있는 경우를 대상으로 합니다. 가능한한 manticore 설정에 대한 설명을 위주로 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
&lt;br /&gt;
===왜 mediawiki 에 검색엔진을 도입해야 하나요?===&lt;br /&gt;
&lt;br /&gt;
mediawiki 의 기본 검색은 sql 의 like 검색으로 이루어져 있습니다. 그래서 sql 검색이라 그 이상을 제공하지 못합니다. 예를들자면 단어와 조사가 띄어쓰기 없이 결합되어 있는 경우 검색에 걸리지 않을 확률이 높다... 뭐 그런얘기죠. 별로 불편함이 없는 분도 있을 수 있겠습니다만... 제 경우는 대부분의 제가 만드는 자료들을 주로 mediawiki 에 넣는 편인데.. 이렇게 자료가 꽤 쌓이는 경우라면 아무래도 작업한 자료를 찾는데 좀 더 민감할 수 있습니다. 이런 경우라면 mediawiki 에 검색엔진을 도입해야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===왜 manricore 를 사용했나요?===&lt;br /&gt;
&lt;br /&gt;
mediawiki 에서 사용할 수 있는 검색엔진에는 다음의 종류가 있습니다.&lt;br /&gt;
&lt;br /&gt;
* sphinxsearch&lt;br /&gt;
** sphinx 검색엔진&lt;br /&gt;
** manticore 검색엔진&lt;br /&gt;
* CirrusSearch&lt;br /&gt;
** Elasticsearch 검색엔진&lt;br /&gt;
&lt;br /&gt;
개인적인 취향입니다만, Elasticsearch 는 java 기반이라 제 취향이 아닙니다. 그리고 sphinx 를 써봤던 예전의 기억이 해당 계열의 최신 프로젝트인 manticore 를 선택하게 했습니다. manticore 자체는 sphinx 와는 달리 내부를 unicode 로 전부 고쳤기때문에 sphinx 보다는 manticore 가 더 적합하다고 생각했습니다. 이건 취향의 차이며, Elasticsearch 에 큰 거부감이 없으신 분이라면 그쪽의 진행이 개인적으로는 더 쓸모있지 않을까 라고 생각합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sphinxsearch extension 의 문제===&lt;br /&gt;
&lt;br /&gt;
mediawiki 의 sphinxsearch extension 은 mediawiki 1.33 을 마지막으로 더이상 관리되지 않습니다. 이 글을 작성하는 시점의 mediawiki 안정버전은 1.43 버전으로서 sphinxsearch extension 이 정상적으로는 동작하지 않습니다.&lt;br /&gt;
&lt;br /&gt;
다행히도 누군가가 작업을 해둔 버전이 있더군요.&lt;br /&gt;
&lt;br /&gt;
https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SphinxSearch/+/1166058&lt;br /&gt;
&lt;br /&gt;
그런데 말입니다.. 정상 동작이 안돼요...... 원래라면 sphinxsearch extension 의 압축을 해제하고, pip 등으로 필요한 패키지등을 설치하면 되어야 합니다만.. 안타깝게도 안됩니다. 그런데 그걸 claude code 의 도움을 받아 mediawiki 1.43 에 맞는 코드로 개량을 해서, 여튼.. 중요한건 되게 만들었었다는 겁니다. :D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===manticore 세팅 에서 주의할점===&lt;br /&gt;
&lt;br /&gt;
1. 기본적으로 한글을 지원하기는 하는데.. 일반적으로 얻을 수 있는 정보를 사용해서는 한글 검색이 되지 않습니다.&lt;br /&gt;
2. manticore 는 docker 로 세팅해도 사용이 충분합니다.&lt;br /&gt;
3. manticore 는 api/sql/sphinx native 의 3가지 mode 의 port 를 제공합니다. 이건 좀 중요한 부분인게..(한숨) 그 어떤 문서에도 이게 따로 적혀있지 않더라구요. mediawiki 의 sphinxsearch extension 은 native 방식을 사용해야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==manticore 세팅==&lt;br /&gt;
&lt;br /&gt;
===manticore docker 작업===&lt;br /&gt;
&lt;br /&gt;
file :: docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  manticore:&lt;br /&gt;
    image: manticoresearch/manticore:13.6.7&lt;br /&gt;
    container_name: manticore&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;29306:9306&amp;quot;   # SQL/MySQL port&lt;br /&gt;
      - &amp;quot;29308:9308&amp;quot;   # HTTP port&lt;br /&gt;
      - &amp;quot;29312:9312&amp;quot;   # sphinx raw api port&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./data/manticore:/var/lib/manticore&lt;br /&gt;
      - ./data/manticore/data:/var/lib/manticore/data&lt;br /&gt;
      - ./conf/manticore/manticore.conf:/etc/manticoresearch/manticore.conf:rw&lt;br /&gt;
      - ./conf/manticore/stopwords.txt:/etc/manticoresearch/stopwords.txt:rw&lt;br /&gt;
    environment:&lt;br /&gt;
      - MANTICORE_CONFIG=/etc/manticoresearch/manticore.conf&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    networks:&lt;br /&gt;
      - webnet&lt;br /&gt;
&lt;br /&gt;
networks:&lt;br /&gt;
  webnet:&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이상의 정보로 docker-compose.yml 을 준비합니다.&lt;br /&gt;
&lt;br /&gt;
* https://github.com/onionmixer/SphinxSearch_Extension&lt;br /&gt;
&lt;br /&gt;
# 위의 URL 에서 conf 안쪽에 있는 파일을 받아옵니다.&lt;br /&gt;
# 받아온 파일을 위의 docker-compose.yml 을 참고해서 적당히 배치합니다.&lt;br /&gt;
# data 아래쪽의 폴더를 사용하게 됩니다. 해당되는 폴더는 미리 생성해둬야 합니다.&lt;br /&gt;
# 오타가 있으면 manticore docker 가 이상동작 합니다. 오타를 못보고 고생을 꽤 했어요...&lt;br /&gt;
# manticore.conf 안에는 stopwords.txt 관련된 내용이 설정되어 있습니다. 관련된 부분을 감안해서 yml 및 conf 파일을 수정해 주어야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
정보가 전부 제대로 기입되어 있다는 전제하에 다음의 명령을 실행합니다. 물론 이 명령어는 docker-compose.yml 이 있는 곳에서 실행해야 합니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d manticore&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이때 사용하는 &amp;quot;manticore&amp;quot; 값은 위의 docker-compose.yml 에서 &amp;quot;container_name&amp;quot; 부분에 적어준 값을 사용하면 됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===manticore.conf 에서 주의해아할 내용===&lt;br /&gt;
&lt;br /&gt;
이 글을 읽는 당신이 manticore 를 mediawiki 를 대상으로 사용할거라면, 대부분의 앖은 수정할 필요가 없습니다. 이 글에서 언급된 github 에서 얻은 manticore.conf 파일의 내용은 거의 변경할 필요가 없습니다. manticore.conf 는 이미 한글을 포함한 multibyte 검색을 위해 준비된 값을 세팅하고 있고, 검색엔진 색인에 사용할 SQL 은 이미 mediawiki 에 맞춰져 있습니다. 당신은 다음의 값만 주의하면 됩니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        type            = mysql&lt;br /&gt;
        sql_host        = localhost&lt;br /&gt;
        sql_user        = mysqluser&lt;br /&gt;
        sql_pass        = mysqluserpassword&lt;br /&gt;
        sql_db          = wikidbname&lt;br /&gt;
        sql_port        = 3306&lt;br /&gt;
        sql_query_pre   = SET NAMES utf8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이 글의 manticore 는 mysql(mariadb) 로 운영되는 환경을 대상으로 하고 있습니다. 때문에 manticore.conf 설정파일도 mysql 에 맞춰져 있습니다. 물론 저는 mariadb 를 사용하고 있으며, 별도의 이상은 없이 사용할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
manticore.conf 내에서 주의해야할 부분이 하나 더 있습니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
searchd {&lt;br /&gt;
    listen          = 0.0.0.0:9306:mysql&lt;br /&gt;
    listen          = 0.0.0.0:9308:http&lt;br /&gt;
    listen          = 0.0.0.0:9312&lt;br /&gt;
    log             = /var/log/manticore/searchd.log&lt;br /&gt;
    query_log       = /var/log/manticore/query.log&lt;br /&gt;
    pid_file        = /var/run/manticore/searchd.pid&lt;br /&gt;
    #set data_dir then rt mode, disable then plain mode&lt;br /&gt;
    #data_dir	    = /var/lib/manticore&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이 내용을 보면 &amp;quot;data_dir&amp;quot; 에 대한 부분이 있습니다. data_dir 이 설정되어 있으면 manticore 는 RT mode 로 동작하며, 설정되어 있지 않으면 plain mode 로 동작합니다. 제가 올린 설정대로라면 plain mode 로 동작하게 되며, 각 mode 는 index 를 갱신하는 경우에 대한 차이점을 가지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
manticore 의 문서에 따르면 manticore 를 rt 와 plain 을 혼용해서 사용하지 않기를 권장하고 있습니다. 다만 그냥 manticure 가 구동되었을 때에는 이를 구별하기가 쉽지 않으며, 이후에 index 를 생성한 이후에 관련된 내용을 확인할 수 있습니다. 아래는 index 를 확인한 경우에 대한 결과입니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -s &amp;#039;http://127.0.0.1:29308/sql&amp;#039; -d &amp;#039;mode=raw&amp;amp;query=SHOW TABLES&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[{&lt;br /&gt;
&amp;quot;columns&amp;quot;:[{&amp;quot;Table&amp;quot;:{&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;}},{&amp;quot;Type&amp;quot;:{&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;}}],&lt;br /&gt;
&amp;quot;data&amp;quot;:[&lt;br /&gt;
{&amp;quot;Table&amp;quot;:&amp;quot;wiki_incremental&amp;quot;,&amp;quot;Type&amp;quot;:&amp;quot;local&amp;quot;},&lt;br /&gt;
{&amp;quot;Table&amp;quot;:&amp;quot;wiki_main&amp;quot;,&amp;quot;Type&amp;quot;:&amp;quot;local&amp;quot;}&lt;br /&gt;
],&lt;br /&gt;
&amp;quot;total&amp;quot;:2,&lt;br /&gt;
&amp;quot;error&amp;quot;:&amp;quot;&amp;quot;,&lt;br /&gt;
&amp;quot;warning&amp;quot;:&amp;quot;&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
docker 설정에 의해 내부의 9308 port 는 29308 port 로 docker instance 의 외부에서 접근할 수 있습니다. manticore 는 이렇게 curl 을 통해서 manticore 의 상황을 알아볼 수 있습니다. RT mode 에서 생성된 index 는 &amp;quot;Type&amp;quot; 부분에 &amp;quot;rt&amp;quot; 라는 값이 나오게 됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===manticore 에 검색할 내용을 넣어보자. indexer 의 동작===&lt;br /&gt;
&lt;br /&gt;
manticore.conf 에 보면 index 가 2개로 설정되어 있습니다.&lt;br /&gt;
&lt;br /&gt;
* wiki_main&lt;br /&gt;
* wiki_incremental&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
wiki_main 은 주 index 고 wiki_incremental 은 주 index 외의 변경된 부분만 index 를 만드는것을 의미합니다.&lt;br /&gt;
&lt;br /&gt;
====case 별 index====&lt;br /&gt;
&lt;br /&gt;
아래의 docker 명령은 docker-compose.yml 이 있는 디렉터리애서 진행시켜야 합니다.&lt;br /&gt;
&lt;br /&gt;
* 모든 index 갱신&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker exec manticore sh -lc &amp;#039;indexer --all --rotate&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wiki_main 만 갱신&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker exec manticore sh -lc &amp;#039;indexer --config /etc/manticoresearch/manticore.conf wiki_main --rotate&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 증분만 갱신&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker exec manticore sh -lc &amp;#039;indexer --config /etc/manticoresearch/manticore.conf wiki_incremental --rotate&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 증분을 wiki_main 으로 병합&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker exec manticore sh -lc &amp;#039;indexer --config /etc/manticoresearch/manticore.conf --merge wiki_main wiki_incremental --rotate&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 증분을 wiki_main 으로 병합한뒤 기존의 증분을 제거&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker exec manticore sh -lc &amp;#039;indexer --config /etc/manticoresearch/manticore.conf --merge wiki_main wiki_incremental --rotate --drop-src&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이상의 내용을 cron 등에 등록해서 mediawiki 의 자료 편집 주기에 따라 필요한 만큼 manticore 의 index 갱신을 해줘야 manticore 의 색인 내용이 의미있게 동작할 수 있음을 꼭 기억하시고, 위의 스크립트들은 bash script 등으로 /usr/local/bin 등에 넣고 동작시키는 것이 좋습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===manticore 의 테스트 및 운영을 위한 몇가지 명령행들===&lt;br /&gt;
&lt;br /&gt;
====manticore docker log 모니터링====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose logs -f manticore&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====manticore docker instance 안쪽의 searchd 에 접속(SQL)====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose exec manticore mysql -h127.0.0.1 -P9306&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====manticore docker 버전확인====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -s &amp;#039;http://127.0.0.1:29308/cli&amp;#039; -d &amp;#039;show version&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====manticore docker instance 의 index 상태 확인====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose exec manticore mysql -h127.0.0.1 -P9306 -e &amp;quot;SHOW TABLES; SELECT COUNT(*) FROM wiki_main;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -s &amp;#039;http://127.0.0.1:29308/sql&amp;#039; -d &amp;#039;mode=raw&amp;amp;query=SHOW TABLE wiki_main STATUS&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====index reload====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -s &amp;#039;http://127.0.0.1:29308/sql&amp;#039; -d &amp;#039;mode=raw&amp;amp;query=RELOAD TABLES&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====manticore 검색테스트====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -s &amp;#039;http://127.0.0.1:29308/search&amp;#039; -H &amp;#039;Content-Type: application/json&amp;#039; -d &amp;#039;{&amp;quot;index&amp;quot;:&amp;quot;wiki_main&amp;quot;,&amp;quot;query&amp;quot;:{&amp;quot;match&amp;quot;:{&amp;quot;*&amp;quot;:&amp;quot;검색어&amp;quot;}},&amp;quot;limit&amp;quot;:5}&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -s &amp;#039;http://127.0.0.1:29308/sql&amp;#039; \&lt;br /&gt;
  --data-urlencode &amp;quot;mode=raw&amp;quot; \&lt;br /&gt;
  --data-urlencode &amp;quot;query=SELECT id, WEIGHT() FROM wiki_main WHERE MATCH(&amp;#039;검색어&amp;#039;) LIMIT 2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====index 강제삭제====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X POST &amp;#039;http://127.0.0.1:29308/sql&amp;#039; -d &amp;#039;mode=raw&amp;amp;query=DROP TABLE IF EXISTS wiki_main&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SphinxSearch extension 세팅==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/onionmixer/SphinxSearch_Extension&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
위의 경로에서 &amp;quot;SphinxSearch&amp;quot; 부분을 다운로드 받아서 운영하고 있는 &amp;quot;~/mediawiki/extensions/&amp;quot; 안쪽으로 넣어줍니다.&lt;br /&gt;
&lt;br /&gt;
이후 운영하고 있는 mediawiki 의 &amp;quot;LocalSettings.php&amp;quot; 부분에 다음의 내용을 추가합니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wfLoadExtension( &amp;#039;SphinxSearch&amp;#039; );&lt;br /&gt;
$wgSearchType = &amp;#039;SphinxMWSearch&amp;#039; ;&lt;br /&gt;
&lt;br /&gt;
$wgSphinxSearch_host = &amp;#039;localhost&amp;#039;;&lt;br /&gt;
$wgSphinxSearch_port = 29312;&lt;br /&gt;
$wgSphinxSearch_index = &amp;quot;wiki_main&amp;quot;;&lt;br /&gt;
$wgSphinxSearch_index_list = &amp;quot;*&amp;quot;;&lt;br /&gt;
$wgSphinxSearchMWHighlighter = True;&lt;br /&gt;
$wgSphinxSearch_index_weights = &amp;quot;null&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
port 부분에 주의해주세요. manticore docker 에서 설정한 3개의 port 중에 &amp;quot;sphinx raw api port&amp;quot; 으로 정의한 docker 의 외부 port 를 연결해 주어야 합니다.&lt;br /&gt;
&lt;br /&gt;
이렇게 설정한 다음 mediawiki 의 page 를 refresh 하면(물론 그 이전에 indexer 를 돌렸다는 전제하에) mediawiki 에서 manticore 의 검색엔진 결과를 사용할 수 있습니다.&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>