2 回答
TA貢獻1776條經驗 獲得超12個贊
該查詢將整個單詞的記錄排名更高,但car,cards排名與 just 相同,car因此它仍然不是最佳的。
SELECT id, search_tags,
MATCH(search_tags) AGAINST('car *') +
MATCH(search_tags) AGAINST('car') AS relevance_rank
FROM images
WHERE MATCH(search_tags) AGAINST('car *')
OR MATCH(search_tags) AGAINST('car')
ORDER BY 3 DESC
+----+---------------------+----------------+
| 身份證 | search_tags | 相關性_排名|
+----+---------------------+----------------+
| 12 | 汽車,卡片,食物,代碼| 0.1677478002 |
| 13 | 汽車,水,天空| 高分辨率照片| CLIPARTO 0.1677478002 |
| 11 | 載體,食物,飲料| 高分辨率照片| CLIPARTO 0.0093915509 |
+----+---------------------+----------------+
下一個查詢還會查看確切單詞在字符串中出現的次數。更好的結果,但可能有點太復雜了。
SELECT id, search_tags,
MATCH(search_tags) AGAINST('car *') +
MATCH(search_tags) AGAINST('car') AS relevance_rank,
LENGTH(search_tags) -
LENGTH(REPLACE(search_tags, 'car', space(LENGTH('car')) -1 )) AS occurences
FROM images
WHERE MATCH(search_tags) AGAINST('car *')
OR MATCH(search_tags) AGAINST('car')
ORDER BY 3 DESC, 4 DESC
+----+---------------------+-----+----- -------+
| 身份證 | search_tags | 相關性_排名| 發生|
+----+---------------------+-----+----- -------+
| 12 | 汽車,卡片,食物,代碼| 0.1677478002 | 2 |
| 13 | 汽車,水,天空| 高分辨率照片| CLIPARTO 0.1677478002 | 1 |
| 11 | 載體,食物,飲料| 高分辨率照片| CLIPARTO 0.0093915509 | 1 |
+----+---------------------+-----+----- -------+
TA貢獻1850條經驗 獲得超11個贊
使用Union時應該工作:
SELECT
id,
search_tags,
MATCH(search_tags) AGAINST(REPLACE(concat("'car'"," ")," "," ") IN BOOLEAN MODE) AS relevance_rank,
1 as prio -- sort by priority first
FROM
images
WHERE
MATCH(search_tags) AGAINST(REPLACE(concat("'car'"," ")," "," ") IN BOOLEAN MODE)
ORDER BY relevance_rank DESC
UNION SELECT
id,
search_tags,
MATCH(search_tags) AGAINST(REPLACE(concat("'car'"," ")," ","* ") IN BOOLEAN MODE) AS relevance_rank,
2 as prio -- sort by priority first
FROM
images
WHERE
MATCH(search_tags) AGAINST(REPLACE(concat("'car'"," ")," ","* ") IN BOOLEAN MODE)
ORDER BY prio, relevance_rank DESC;
- 2 回答
- 0 關注
- 228 瀏覽
添加回答
舉報
