Quantcast
Channel: Question and Answer » postgresql
Viewing all articles
Browse latest Browse all 1138

Full text search on two tsvector columns

$
0
0

I’m trying to do a full text search across two columns of two separate tables in PostgreSQL 9.4.2. The tables and columns are:

  • article.article_title
  • keyword.keyword

Where there is a many-to-many relationship between the two. I think I’ve got most of the way following this blog post. However, I am struggling to formulate the query across the two columns. This query is returning results:

SELECT distinct title, pub_date, web_id, city_points, city_name FROM (
  SELECT article.article_title as title,
  article.pub_date as pub_date,
  article.web_id as web_id,
  string_agg(st_asText(city.geom), ', ') as city_points,
  string_agg(city.city, ', ') as city_name,
  article.title_tsv ||
  keyword.keyword_tsv
  as document 
  from article, article_keywords, keyword, article_cities, city
  where article.id = article_keywords.article_id
  and keyword.id = article_keywords.keyword_id
  and article.id = article_cities.article_id
  and city.id = article_cities.city_id
  GROUP BY article.id, keyword.id) p_search
WHERE p_search.document @@ to_tsquery('putin');

But I think the query suffers many of the same deficiencies from a previous question I asked here.

I am also trying to return the following columns in the query:

  • article.pub_date
  • article.web_id
  • city.city_points
  • city.city_name

I am pretty new to full text search – and SQL in general.
Let me know if you need any more information.


Viewing all articles
Browse latest Browse all 1138

Trending Articles