在SphinxSearch的索引中,我希望第一个位置与搜索阶段完全匹配。但是我在第6个位置得到了精确的数学。
例如:
SELECT id, WEIGHT()
FROM `products_elit_cs`
WHERE MATCH('BKR5EK')
ORDER BY WEIGHT() DESC
OPTION ranker=sph04
返回[sphinxsearch结果]
id weight()
199001 7528
279018 7528
385989 7528
4513542 7528
4759603 7528
58449 7527
297335 6528
4759601 6527
5030474 6527
341879 4527
但源数据是[mysql result]
id active_number_cs
58449 BKR5EK
199001 BKR5EKU
279018 BKR5EKUP
297335 BKR5EKB-11
341879 V-23 BKR5EK
385989 BKR5EKC
4513542 BKR5EKUD
4759601 BKR5EKPB-13
4759603 BKR5EKUC
5030474 BKR5EKPB-11
注意,id为58449的记录就是精确的数学。
我们使用sphinxsearch的2.1.6版本。
答案 0 :(得分:1)
我猜你有enable_star=0
是吗?
http://sphinxsearch.com/docs/archives/manual-2.1.6.html#conf-enable-star
会建议更改为enable_star=1
,然后添加expand_keyword=1
http://sphinxsearch.com/docs/archives/manual-2.1.6.html#conf-expand-keywords
这应该允许您将完全匹配排名更高。可能需要尝试不同的排名表达式。 http://sphinxsearch.com/docs/archives/manual-2.1.6.html#weighting