1
我希望有人來幫助我解決這個場景: 我有一個包含條目的表。我想執行查詢並根據模式獲得最高分的記錄。 該模式將是:如果我的單詞出現,那麼分數將是該條目的最高分數。如果該單詞在句子中出現,那麼該條目的分數將低於先前的情況。MySQL MATCH-AGAINST場景
e.g: 項 取值範:蘋果 ENTRY2:每
日如果我搜索「蘋果」一個蘋果,我想的取值範有得分高於ENTRY2。
所以我做了這個查詢:
SELECT
entry,
MATCH
(entry)
AGAINST
('>("apple") <(apple*)' IN BOOLEAN MODE)
AS
Score
FROM
entries
WHERE
MATCH
(entry)
AGAINST
('>("apple") <(apple*)' IN BOOLEAN MODE)
LIMIT 1
但它是錯誤的。此查詢返回兩個句子(「蘋果」和「每天一個蘋果」)相同的分數,因爲單詞「蘋果」出現在它們兩個中。 關於AGAINST()模式會有什麼建議?
這是一個非常好的做法,在我的情況下工作!但是有沒有什麼辦法可以根據我提到的模式來實現不同的分數呢? – alexgeorg86
我看不出有什麼辦法可以做到這一點。除非有某種方式可以將分數除以輸入長度。我認爲你可以做的最好的是按照長度排序(輸入)ASC,Score DESC。 –