Примеры, которые я видел для поиска сфинксов, на самом деле не используют объединения. Если бы у меня была такая схема (одна книга имеет несколько рецензий),
create table book ( id int auto_increment, title varchar(200), summary longtext );
create table reviews ( id int auto_increment, book_id int, review longtext );
Какой запрос я должен задать sphinx, чтобы я мог найти слова в обзоре, и он вернет соответствующую книгу. Если я использую обычное внутреннее объединение, каждый отзыв будет одним документом, который не соответствует тому, что видно на сайте (одна страница содержит информацию о книге и все отзывы).
Что вы предлагаете? Должен ли я создать денормализованную таблицу для поисковых документов и использовать отображаемую страницу в качестве входных данных, например ::
create table sphinx_input (
id int, -- corresponds 1..1 to book.id
contents longtext -- everything on the page
);
и изменить это для каждого изменения в книгах и обзорах?