Если верно понимаю, при создании таблице, создается поле с типом multi?
Да. Команда create table indexnews(tag multi)
создаёт таблицу с полем tag
с типом multi
.
Я не создаю таблицы, работаю с индексами
В мантикоре индексы - это:
- полнотекстовый индекс
- secondary index
Структуры, в которых хранятся данные называются “таблицами”. Раньше назывались “индексами”, но мы переименовали, чтоб не было путаницы с тем, что действительно индексы.
То есть мантикора парсит таблицу из mysql. Пока не уверен что будет толк, скажите пожалуйста
Не понял вопроса.
Мантикора при парсинге(создании таблицы), вероятно не верно индексирует данное поле. Из-за неверного выставленного типа в mysql…
Если вам в итоге нужно, чтоб данные попали в поле типа multi в мантикоре, то в mysql данные должны выглядеть как, например, строка. Вот пример:
snikolaev@dev2:~$ cat min_mysql_multi.conf
source min
{
type = mysql
sql_host = localhost
sql_user = test
sql_pass =
sql_db = test
sql_query = select 1, '(1,2)' m
sql_attr_multi = uint m from field
}
index idx_min
{
path = /tmp/idx
source = min
}
searchd
{
listen = 9315:mysql
log = sphinx_min.log
pid_file = 9315.pid
binlog_path =
}
snikolaev@dev2:~$ indexer -c min_mysql_multi.conf --all
Manticore 6.3.9 1b26dba08@24120911 dev (columnar 2.3.1 edadc69@24112219) (secondary 2.3.1 edadc69@24112219) (knn 2.3.1 edadc69@24112219)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2024, Manticore Software LTD (https://manticoresearch.com)
using config file '/home/snikolaev/min_mysql_multi.conf'...
indexing table 'idx_min'...
collected 1 docs, 0.0 MB
creating secondary index
creating lookup: 0.0 Kdocs, 100.0% done
total 1 docs, 0 bytes
total 0.290 sec, 0 bytes/sec, 3.44 docs/sec
total 1 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 13 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
snikolaev@dev2:~$ searchd -c min_mysql_multi.conf
Manticore 6.3.9 1b26dba08@24120911 dev (columnar 2.3.1 edadc69@24112219) (secondary 2.3.1 edadc69@24112219) (knn 2.3.1 edadc69@24112219)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2024, Manticore Software LTD (https://manticoresearch.com)
[37:26.061] [3598479] using config file '/home/snikolaev/min_mysql_multi.conf' (334 chars)...
starting daemon version '6.3.9 1b26dba08@24120911 dev (columnar 2.3.1 edadc69@24112219) (secondary 2.3.1 edadc69@24112219) (knn 2.3.1 edadc69@24112219)' ...
listening on all interfaces for mysql, port=9315
precaching table 'idx_min'
precached 1 tables in 0.001 sec
snikolaev@dev2:~$ mysql -P9315 -h0 -e "select * from idx_min"
+------+------+
| id | m |
+------+------+
| 1 | 1,2 |
+------+------+
Что та тоже не работает, на mysql именно так ищу запись в поле которой прописан id…
Где вы в доке мантикоры увидели, что есть функция FIND_IN_SET
? Ссылку на доку на ANY/ALL я вам уже давал. Изучайте.