Статьи из рубрики data-structure
Как создать индекс ElasticSearch
Полнотекстовый поиск
Один парень написал: "Нужно сделать поиск слов в таблице "articles" по столбцу "content". В результатах поиска сначала выводить те, которые содержат наибольшее количество слов в статье и далее по мере уменьшения."
Мысль летит) Но ясно, что нужен полнотекстовый поиск.
WordPress плагин для недвижимости
Без изменения структуры данных
Привлекательность WordPress в большом количестве тем оформления. Иллюзия легкости, с которой можно поменять тему, не дает покоя разработчикам. Сейчас на WordPress работают даже магазины.
Чтобы разобраться, как это возможно, я решил написать плагин для агенств недвижимости. Расширять структуру данных не хотелось - это уже будет не WordPress. Решил сохранять JSON-определения объектов недвижимости в поле post_content
и преобразовывать эти определения "на лету" - Demo, GitHub
Как устроена структура данных Nested Set
Как сделать рубрикатор
Рубрикатор, как средство поиска интересных статей, имеет свои недостатки - трудно придумать иерархию, названия рубрик, трудно потом решить к какой конкретно рубрике относится статья. "Но, так принято" - скажите вы и будете правы.
Цепочки статей в блоге
Можно ли сделать блог удобнее?
Для группировки статей существует возможность помечать статьи метками или прикреплять к наперед заданной рубрике. Кроме того, в конце статьи есть навигация - предыдущая, следующая статья, ну и меню конечно. Вроде все удобно.
Поиск
Метки
Для группировки статей существует возможность помечать статьи метками или прикреплять к наперед заданной рубрике. Кроме того, в конце статьи есть навигация - предыдущая, следующая статья, ну и меню конечно. Вроде все удобно.
Но, в одну рубрику могут входить статьи, посвященные разным темам. Да и с метками та-же неопределенность.
Вы выбираете конкретную рубрику или метку и получаете список статей вроде связанных между собой, но степень связанности разная. В результате читатель выбирая рубрику получает список статей не отвечающих ожиданиям.
Навигация - предыдущая, следующая то же огорчает. Выполнена она по датам. То есть, чтобы получить нужную последовательность статей, надо не забывать проставлять верные даты. Не очень удобно.
Можно ли улучшить положение?
Новое поле для улучшения навигации
Для связывания статей в цепочку можно добавить в стандартную таблицу post
поле previous_id
. Это обычный идентификатор статьи.
При добавлении в блог очередной статьи, нужно выбрать из выпадающего списка предыдущую статью. И это, собственно, все, что необходимо сделать блоггеру.
Model
Для поиска предыдущих статей нужно в модели последовательно "пройтись" по всем статьям начиная с просматриваемой, пока previous_id
имеет заполненное значение.
public function Previous() { $a = []; $previous = $this->previous_id; while($previous) { $post = $this->findOne($previous); $a[$post->id] = $post->getTitle(); $previous = $post->previous_id; } return $a; }
Для поиска следующих статей нужно "пройтись" по всем статьям у которых previous_id
равно post.id
статьи начиная с текущей.
Если массив $a
окажется пустым, можно использовать обычный механизм - возвращать заголовок предыдущей или следующей статьи по дате.
Заключение
Добавление поля previous_id
позволяет организовать статьи в группы или цепочки. Выбрав и просмотрев статью, Вы уже точно знаете, какие еще статьи относятся к теме.
Comments
Оставьте комментарий
Только зарегистрированные пользователи могут оставлять комментарии. Пожалуйста войдите или пройдите регистрацию.
Можно авторизоваться, используя социальную сеть-
-
-