У всех Документов есть особенность - каждому из них соответствует текстовое содержимое, по содержимому которого и необходимо одновременно с поиском по параметрам выполнять фильтрацию
А в Sphinx / Manticore какой функциональности не хватает, чтобы фильтровать сразу сразу и по полнотексту, и по всему остальному? Можно пример?
- заносить все параметры для фильтрации в индекс поисковой машины - ужасный вариант, так как поисковая машина выполняет фильтрацию по обычным своим полям очень медленно
Можно пример запроса по "поисковая машина выполняет фильтрацию по обычным своим полям очень медленно". Не пойму что вы имеете в виду под "обычными своими полями" и почему вдруг получается медленно.
Как по мне - этот вариант наиболее оптимальный в вашем случае. Фильтровать по полнотексту в одном месте и неполнотексту в другом и при этом оперировать сотнями тысяч документов возможно, но не всегда может получиться добиться хорошей производительности, т.к. всё будет упираться в то, что отфильтрованное в одном месте нужно будет передать в другое. А в случае, если делать всё в одном месте это происходит автматически.
плюс встает необходимость содержать актуальными две копии данных - в БД и поисковой машине
Так а сейчас вы разве это уже не делаете? Просто нужно дополнительно с id/full-text field синхронизировать и другие поля, по которым хочется в итоге фильтровать. Если вы имеете в виду, что сложно синхронизировать обновления документов, то для plain индексов есть main+delta для таких случаев (
https://play.manticoresearch.com/maindelta/) , для RT - зависит от приложения.