Всем привет. Ребят не могу догнать, потому что, похоже, я хлебушек, что не так с мантикорой. Делаю все по манулу. Работаю через докер.
Настройки докера:
manticore:
build: data/docker/manticore
restart: always
volumes:
- ./data/docker-files/manticore/data:/var/lib/manticore/data
- ./data/docker-files/manticore/logs:/var/log/manticore
- ./data/docker/manticore/manticore.conf.dist:/etc/manticoresearch/manticore.conf
ports:
- 9306:9306
- 9308:9308
- 9312:9312
depends_on:
- mysql
command: sh -c "sleep 10 && indexer --all --rotate && searchd --nodetach"
Настройки конфига мантикоры:
source main
{
type = mysql
sql_db = bd //конечно зареймлено
sql_query_pre = SET CHARACTER_SET_RESULTS=utf8
sql_query_pre = SET NAMES utf8
sql_user = tipa_user //конечно зареймлено
sql_pass = tipa pass //конечно зареймлено
sql_port = 3306
sql_host = mysql
}
searchd
{
listen = 9312
listen = 9306:mysql
listen = 9308:http
pid_file = /run/manticore/searchd.pid
}
source news : main
{
sql_query = \
SELECT \
post_id, \
title, \
intro, \
content \
FROM \
news\
WHERE \
object_type_id = 3
sql_attr_uint = post_id
}
table news
{
source = news
path = /var/lib/manticore/data/news
morphology = stem_ru, stem_enru
min_word_len = 2
expand_keywords = 1
html_strip = 1
}
В data создаются индексовые файлы
делаю подключение к клиенту:
use Manticoresearch\Client;
class ManticoreSearch
{
private ?Client $_client = null;
public function connect(): void
{
if ($this->_client === null || !empty($this->_client->getConnections())) {
$this->_client = new Client([
'host' => 'manticore',
'port' => 9308,
]);
var_dump($this->_client->table('news')->status());
}
exit;
}
}
В итоге выводит, что такой таблицы нефига нет
"SHOW TABLE STATUS requires an existing table"
По сути индексация в записях есть. Записи нет. Может кто подсказать как работать с этим?