У меня есть простая таблица
id: primary
name: varchar fulltext index
, вот моя конфигурация Sphinx https://justpaste.it/1okop
Индексатор предупреждает о docinfo
Sphinx 2.2.11-id64-выпуск (95ae9a6) Copyright (c) 2001-2016, Andrew Aksyonoff Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
с использованием файла конфигурации '/etc/sphinxsearch/sphinx.conf' ..индексирование индекса 'words' ... ПРЕДУПРЕЖДЕНИЕ: количество атрибутов равно 0: переключение на ноль docinfo собрало 10000 документов, 0,1 МБ отсортировано 0,0 Mhits, выполнено 100,0% всего 10000 документов, всего 79566 байт 0,065 с, 1210829 байт / с, 152179,20 документов/ сек всего 3 чтения, 0,000 сек, 94,6 кб / ср. вызовов, 0,0 мсек / ср. вызовов всего 9 операций записи, 0,000 сек, 47,5 кб / ср. вызовов, 0,0 мсек / ср. вызовов
Но это сказаноздесь Сфинкс: ПРЕДУПРЕЖДЕНИЕ: Количество атрибутов равно 0: переключение на ноль docinfo , что ничего серьезного.
ОК, запуск службы и поиск части слова:
SELECT *
FROM test_words
where match (name) AGAINST ('lema')
No rows.
Tha same as
SELECT *
FROM test_words
where match (name) AGAINST ('*lema*')
Нет строк.
И в то же время есть результаты для запроса
SELECT *
FROM `test_words`
where position('lema' in name)>0
насколько я могу судить - Сфинкс не ищет по части слова.Почему и как это исправить?
И - если я раскомментирую
min_infix_len = 3
infix_fields = name
, я получу
WARNING: index 'words': prefix_fields and infix_fields has no effect with dict=keywords, ignoring
И еще один - покажем двигатели; не показывать движок сфинкса, это нормально сейчас?Служба mysql была перезапущена.
Все sql-запросы выполнялись через Adminer, зарегистрированный на localhost: 3312