Поиск по статьям и новостям на сайте

215
21 октября 2017, 18:54

Интересует, целесообразность использовать sphinx или иную поисковую машину для организации поиска по сайту. Хотелось бы, чтобы поиск сортировался по наиболее подходящему варианту. И Конечно поиск должен происходить по полям новостей, статей и категорий. То есть несколько таблиц. Также фильтр по тегу статьи.

С поисковыми машинами ранее не работал. База данных на PostgreSQL.

Как такой поиск возможно организовать и необходимо ли здесь использовать Sphinx или другой подобный инструмент?

У меня мысли использовать Full Text Index PostgreSQL. Он вроде должен автоматически сортировать по количеству совпадений. Но не знаю как делать поиск по нескольким таблицам. Наверное сделать представление, объединив в нём эти таблицы? И уже по представлению делать поиск?

Answer 1

Как-то так, но в реальности нужен еще словарь.

create table t1 (
  id int,
  title varchar(128),
  fts tsvector
);
create table t2 (
  id int,
  title2 varchar(128)
);
insert into t1(id, title) values (1, 'cow');
insert into t2(id, title2) values (1, 'milk');

UPDATE t1 as target 
        SET fts =
            setweight(to_tsvector(coalesce(title, '')), 'A') ||
            setweight(to_tsvector(coalesce((select title2 from t2 where id = target.id) ,'')), 'B');
select * from t1;

http://sqlfiddle.com/#!15/7e82d/22

READ ALSO
Как через ссылку добавлять в сессию yii2 [требует правки]

Как через ссылку добавлять в сессию yii2 [требует правки]

Нужно через ссылку добавить массив товара в сессию

228
Отделить текст от цифр

Отделить текст от цифр

Пробую отделить текст от цифр, но ничего не выходит (результат представленного ниже регулярного выражения пуст)

243