那麼這樣的獅身人面像不是'神奇'的,它沒有'模糊匹配'功能。
但可以近似一個:)兩個主要步驟...
從要求所有「單詞」,改爲只需要一些
改變排名,要儘量做到最好查詢和標題之間的「交集」,得到很高的權重,因此'泡沫'到頂部。
然後就可以取得最好的結果,並將其作爲「最佳猜測」。
(實際上有三分之一的詞語'for'和'the'很可能會導致大量的誤報,所以可能希望排除它們,或者在索引中使用停用詞,或者從查詢中刪除)
這樣的查詢的原型可能是這樣的使用羣體影響的匹配,並選擇不同的排序器
SELECT catid FROM sphinx WHERE MATCH('"Looking Landlords Long term lease No fees"/1') OPTION ranker=wordcount LIMIT 1;
那。
與分組一起使用此版本,可能不會工作,因爲會包含大量低質量的匹配項。雖然可能試圖使用平均值,或總和來獲得綜合體重?
SELECT SUM(WEIGHT()) as w, catid FROM sphinx WHERE MATCH('"Looking Landlords Long term lease No fees"/1') GROUP BY catid ORDER BY w DESC OPTION ranker=wordcount LIMIT 1
有很多方法來調整這個...
你可以嘗試其他rankers,如matchany。甚至有些自定義排名表達式。
或者更改法定人數,例如排名需要1個字,可能會導致至少幾個。
或者如果可以提取短語,例如
'「尋找房東」| 「長期租賃」| 「不收費」'
可能工作?
也可以不僅僅是取得最好的結果,取得前5-10名的結果,並將它們全部展示給用戶,因爲結果非常接近。