я пришел в Monticore от Sphinx, только считай осваиваюсь.
У меня примерно 200 индексов, все они имеют номер ‘lib_{номер}’.
Так вот индекс lib_25 имеет 52 784 записей и переодически несколько раз в сутки сбрасывается в 0 (есть еще пару индексов которые сбрасываются но этот индекс чаще всех).
Так же есть индекс lib_133 в котором 2 438 672 записей и с ним все порядке, он стабилен!
Monticore лежит на отдельном сервере в Докере запустил я его через параметры:
“sudo docker run --name manticore --rm -v /var/lib/manticore:/var/lib/manticore -v /var/log/manticore:/var/log/manticore -p 127.0.0.1:9306:9306 -p 127.0.0.1:9308:9308 -d manticoresearch/manticore”. работаю с ним через 9308 порт запросами POST (с портом 3006 пока работать не получается)
Manticore создается пустым, все индексы создаю через запросы и заполняю их тоже запросами POST
во время работы проекта идет поиск и изменения в индексах (они конечно RT индексы)
Так вот почему-то в логах пишутся только логи на поиск но не на запись или удаление, я пытался отлавливать все удаление отправляемые от сервера в Monticore и там нет ничего неприличного. Сам повторить или отловить почему может очистится индекс не могу.
Я на самом деле в растерянности, единственная связь с спонтанной очисткой это то что индексы достаточно часто изменяются.
Может ли быть такое что Montocore не хватает что ни будь внутри Докера (место или ОЗУ)? (хотя сам сервак очень сильный, 24 физических ядра и 128 гиг оперативки, monticore не единственный докер но сервер легко все тянет)
Может это известный глюк о котором я не знаю?
Можно ли как то положить все запросы в логи, что бы по ним отследить если эта проблема на моей стороне?
Помогите пожалуйста где и как стоит копать (я пока пытаюсь написать еще пару скриптов на отслеживания всего что отправляется в Monticore но даже сейчас уверен что сервис не причем, так как весь механизм много лет работал без сбоев в Sphinx)
код я пишу на php, запрос делаю через “curl”
'Content-Type: ’ : ‘application/json’
даже не представляю как сделать рабочую версию на github но я попробую повторить тот же баг на C#
ну на всякий случай хочу уточнить что на тестовом сервере я использую https а на продавшее http (просто на прод версию я еще не выложил сертификат), но поведение Monticore одинаковое
вам нужно приложит конфиг демона с индексом или create запрос, несколько insert запросов которые наполнят индекс и json/delete запрос который очистит весь индекс, вместо удаления конкретного документа
Создан индекс: на “/sql”
“mode=raw&query=CREATE TABLE IF NOT EXISTS lib_25 ( lib integer, master_id integer, level integer, lang string, field string, name text, weight integer, popularity integer) charset_table=‘0…9, A…Z->a…z, a…z, +, U+21E8, U+410…U+42F->U+430…U+44F, U+430…U+44F, U+401->U+435, U+451->U+0435’ dict=‘keywords’ morphology=‘stem_enru’ min_word_len=‘1’ min_infix_len=‘2’ index_exact_words=‘1’ html_strip=‘1’”
Заполняю:
и Удаляю: на “/json/delete”
{
“index” : “lib_25”,
“master_id” : 1234,
}
Я дико извиняюсь за свою неопытность в таких вопросах, но я не совсем знаю как правильно перехватить POST запрос что бы его тут отобразить. Я покопаюсь в вопросы и постараюсь выложить более подробную информацию
спасибо за ответ, поправлю запрос, где бы эту информацию бы в документации найти )))
но честно сказать все равно очищение индекса из за ошибки в запросе это конечно сильно, может стоит забросить такое поведение?