Как мне предоставить качественные результаты поиска продуктов от разных поставщиков в базе данных MySQL? - PullRequest
0 голосов
/ 29 августа 2011

У меня есть база данных MySQL, которая содержит таблицу с названием products, например, структуру:

  • product_id
  • имя
  • цена
  • производитель

Продукты импортируются в базу данных из файла от каждого поставщика, поэтому, например, Поставщик 1 мог импортировать записи 1 - 1500, затем поставщик 2 мог импортировать записи 1500 - 4500, поставщик 3 4500 - 5250 и т. 1013 *

У каждого поставщика может быть несколько типов одного и того же продукта. Давайте воспользуемся примером обеденных тарелок. Таким образом, у каждого продавца может быть много разных марок и стилей обеденных тарелок.

Когда пользователь ищет обеденные тарелки, используя запрос MATCH ... AGAINST, я получаю много результатов от каждого поставщика, однако результаты поиска будут в том же порядке, в котором они находятся в базе данных от поставщиков. Таким образом, я мог бы увидеть сто обеденных тарелок от продавца 1, прежде чем я смогу увидеть какие-либо обеденные тарелки от продавца 2.

Есть ли лучший подход для отображения результатов поиска, если они не специфичны, чтобы немного смешивать результаты?

1 Ответ

1 голос
/ 29 августа 2011

Вам необходимо использовать ORDER BY с произвольным столбцом.Сортируйте их по добавленной дате или какому-либо другому полю, чтобы получить случайные результаты.

Довольно плохое решение этого вопроса - использовать ORDER BY RAND(), но учтите, что каждый раз это дает другой случайный порядокстраница была перезагружена.

Другим решением может быть FULLTEXT поиск (и индексирование) более одного столбца;это дало бы более разнообразный набор результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...