Итак, для нового проекта я создаю систему для сайта электронной коммерции. Идея заключается в том, чтобы импортировать продукты у поставщиков и вместо того, чтобы вставлять их непосредственно в наш каталог, мы будем хранить всю информацию в промежуточной области. У каждого поставщика есть своя стадия (т. Е. Таблица в базе данных), а затем я буду сглаживать несколько промежуточных областей в единый объект (в настоящее время это одна таблица, но позже, возможно, в Sphinx или Solr). Затем наши мерчандайзеры смогут искать соответствующие поля промежуточных продуктов (имя и описание) и показывать список продуктов, которые соответствуют, а затем выбирать, чтобы эти продукты были перенесены в живой каталог. Поиск будет запрашивать одну таблицу (сплющенные области постановки).Зачем (или не должен) поисковый запрос возвращать только идентификаторы документов?
Мой проект позволяет хранить только поля с возможностью поиска и фильтрации в одном плоском столе - например, имя, описание, поставщик_ид, поставщик_prod_id и т. д. И поисковые запросы возвратят только идентификаторы совпадающих элементов и класс (поставщик_ид), которые будут использоваться для определения, в какой области этапов находится продукт.
Другой старший инженер считает, что сплющенная таблица поиска должна включать в себя другие метаполя (которые не будут искать), но может использоваться, когда «толкает» продукты из сцены в живой каталог. Он также считает, что запрос должен вернуть всю эту другую информацию.
Я чувствую себя довольно уверенно только в том, что поля поиска доступны в сплющенной таблице, а поиск возвращает только пары классов/идентификаторов, которые могут быть использованы для извлечения всех других необходимых метаданных о продукте (простой выбор * из класса class_table, где id (1,2,3)).
Часть моих рассуждений заключается в том, что это облегчит переход коммутационной таблицы из базы данных на поисковый сервер, такой как sphinx или solr, и остальная часть кода не должна изменяться только потому, что реализация поиск изменен.
Есть ли я на правильном пути? Как я могу убедить другого инженера, почему важно хранить только поля с возможностью поиска и возвращать только идентификаторы? Или, что конкретно, почему поисковое приложение возвращает только идентификаторы объектов?
Имеет смысл. В моем примере, даже если некоторые поля помещаются в «таблицу поиска», нам все равно придется ударить по области постановки, чтобы полностью собрать всю необходимую информацию, прежде чем нажимать вживую. – safoo