【发布时间】:2016-06-09 04:45:02
【问题描述】:
我有一个电影表,我想搜索标题并返回最接近的匹配项。
我认为全文搜索可能有用,但它似乎无法按单词的位置排序,尽管 postgres 知道位置。这在 postgres 中可行吗?
这是我的查询:
SELECT collectibles.id, collectibles.title, ts_rank_cd(to_tsvector('english', collectibles.title), plainto_tsquery('old school')) AS score
FROM collectibles WHERE to_tsvector('english', collectibles.title) @@ plainto_tsquery('old school')
ORDER BY score DESC;
以下是一些结果:(这是我能想到的最好的格式,抱歉!)
id | title | score
- 277568 | Wilson Meadows: Live At The 15th Old School & Blues Festival | 0.1
- 3545 | 5 Film Collection: Will Ferrell: Campaign / Old School (Unrtated Version) / Blades Of Glory / Roxbury / Semi-Pro | 0.1
- 10366 | Alice Cooper: Old School: 1964-1974 (DVD/CD Combo) | 0.1
- 13004 | American Classics: Old School (3-Disc Set) | 0.1
- 13005 | American Classics: Old School: Classic Chevrolets | 0.1
- 13006 | American Classics: Old School: Classic Travel Trailers | 0.1
- 13007 | American Classics: Old School: Kings Of Kustomizing | 0.1
- 14592 | Anchorman: The Legend Of Ron Burgundy (Widescreen/ Extended Edition) / Old School (R-Rated Version) (Back-To-Back) | 0.1
- 14593 | Anchorman: The Legend Of Ron Burgundy (Widescreen/ Extended Edition) / Old School (R-Rated Version) (Side-By-Side) | 0.1
- 20242 | Audiovisualize: Mixed By Addictive TV: Snake Worship Island / Corp. Inc. / Old School Futures / These Melodies / Robot War / ... | 0.1
- 192057 | Old School (DreamWorks/ Widescreen/ Unrated Version/ Special Edition) | 0.1
- 192058 | Old School (DreamWorks/ Widescreen/ Unrated Version/ Special Edition) / Road Trip (R-Rated) (Back-To-Back) | 0.1
- 192059 | Old School (DreamWorks/ Widescreen/ Unrated Version/ Special Edition) / Road Trip (R-Rated) (Side-By-Side) | 0.1
- 192060 | Old School (DreamWorks/ Widescreen/ Unrated Version/ Special Edition) / Road Trip (Unrated) (Back-To-Back) | 0.1
- 192061 | Old School (DreamWorks/ Widescreen/ Unrated Version/ Special Edition) / Road Trip (Unrated) (Side-By-Side) | 0.1
- 192062 | Old School (Warner Brothers/ R-Rated Version) | 0.1
- 192063 | Old School (Warner Brothers/ R-Rated Version/ Blu-ray) | 0.1
- 192064 | Old School (Warner Brothers/ Unrated Version) | 0.1
- 192065 | Old School (Warner Brothers/ Unrated Version/ Blu-ray) | 0.1
- 192066 | Old School Comedy (4-Pack): Atoll K / Jack And The Beanstalk / The Flying Deuces / Africa Screams | 0.1
- 192067 | Old School Hip Hop Dance #1: Beginner | 0.1
- 192068 | Old School Hip Hop Greatest | 0.1
- 192069 | Old School Hip Hop: Run DMC & Flava Flav (2-Disc) | 0.1
- 192070 | Old School Hits Movie Marathon Collection (3-Disc) | 0.1
- 192071 | Old School Returns | 0.1
所有这些的分数都是 0.1,但许多标题中的单词位置更接近字符串的前面。有什么办法可以将它们排名更高吗?不幸的是,字符串或 id 的长度并不是很好的排名限定符。
【问题讨论】:
标签: postgresql full-text-search