Я строю свое первое приложение Rails и отлично работаю с Thinking Sphinx. Я понять большинство из них, но хотелось бы, если бы кто-то может помочь мне прояснить несколько концептуальных вопросыМышление Sphinx & Rails вопросы
При отображении результатов поиска после запроса сфинкса, я должен использовать в sphinx_attributes, возвращаемые из запроса сфинкса ? Или должен ли мой взгляд использовать обычные объекты рельсов, такие как @ property.title, @ property.amvents.title и т. Д.? Если я использую обычные объекты рельсов, разве это не означает, что он делает дополнительные запросы?
В форуме я бы хотел показать «непрочитанные сообщения». Очевидно, что это истинно/ложно для каждой комбинации пользователей/тем, поэтому я думаю, что я должен кэшировать идентификаторы читателя в индексе sphinx в этой теме. Таким образом, я могу быстро выполнить запрос для всех непрочитанных сообщений для данного user_id. У меня это работает, но потом понял, что это бессмысленно, так как есть временная задержка между индексами sphinx. Поэтому, если пользователь нажимает на непрочитанное сообщение, он все равно будет отображаться непрочитанным до тех пор, пока база данных sphinx не будет проиндексирована.
Я все еще на разработке, поэтому я вручную индексирую/перестраиваю, но на производстве, что такое стандартное время между повторной индексацией?
У меня есть модель с несколькими текстовыми полями. Должен ли я объединить эти все в один столбец в индексе sphinx для поиска по ключевым словам? Конечно, это быстрее, чем индексирование всех отдельных полей.
Немного не по теме, но просто интересно - когда вы получаете доступ к вложенным моделям, например @ property.agents.name, влияет ли это на производительность? Или рельсы автоматически извлекают все связанные записи, когда свойство вытаскивается из базы данных?
Большое спасибо за подробный ответ!Я не могу отметить это как правильно, так как у меня нет репутации, но жаль, но я очень ценю это! Re номер 2, есть ли лучший способ сделать это? Разумеется, это довольно распространенная функция, я бы хотел сделать то же самое для свойства «список наблюдения», но его вряд ли полезно, если пользователь должен ждать 10 минут, чтобы увидеть свойство в своем списке наблюдения. – Dave
Возможно, стоит прочитать дельта, поскольку это может уменьшить отставание до нескольких секунд. – pat