Индексация, обработка сложных запросов, логика "или"


#1

У меня есть 3 проблемы со Сфинксом:

  1. индексация базы занимает более 10 часов, что очень долго для базы в 10млн строк
  2. выполнение сложных запросов занимает до 30 секунд, например https://goo.gl/prhBYf
  3. никак не можем научить сфинкс искать с логикой “или”, приходится заменять на логику “кроме”, что создает определенные неудобства. Например, если есть а, б, с, и надо искать только по а или только по с, то мы делаем логику “искать везде кроме б”, хотя тот же Эластик умеет искать по логике только а или только с.

#2

по 1ому пункту нужно смотреть - на ваш конфиг, размер полученых индексов, вывод indexer сколько чего проиндексировалось с какой скоростью

по 2ому пункту - нужно смотреть show profile, что отнимает время в запросе. Возможно так же разбить индексы на несколько и использовать distributed индекс с опцией демона dist_threads

по 3му пункту запрос только а или только с выглядит как a | c, описано тут https://manticoresearch.gitlab.io/dev/searching/boolean_query_syntax.html - operator OR


#3

Что нужно сделать, чтобы Вы взялись за пункты 1 и 2 ? Я не программист, я заказчик. Я могу передать программисту, чтобы он подготовил для Вас необходимые материалы.

По поводу пункту 3 проблема немного в другом, попрошу программиста более правильно ее сформулировать.


#4

Здравствуйте, Дмитрий. Ответил письмом.