i'm trying fulltext search with tags but it doesn't works properly for me chek attached image please
查询是:
SELECT *,
MATCH(tags) AGAINST ('tag3 tag6 tag4') AS score
FROM items
ORDER BY score DESC
为什么分数没有在正确的顺序字段中排序?如果您检查第二行是否包含我搜索的所有标签,而第一个字段没有 tag3 关键字。
我的意思是 id 字段顺序应该是:5,1,2 .. 等而不是 1,5,2 .. 等
我的错误在哪里?
然后我想首先在标签字段中搜索,然后如果没有结果,我想在描述字段中搜索与全文相同的关键字,因此如果标签不匹配,用户将在标签和描述中搜索,是否可以在同一查询中或者我需要两个单独的查询?
在本文档中http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html它说“对于非常小的表格,单词分布不能充分反映它们的语义价值,并且该模型有时可能会产生奇怪的结果。”
如果您的项目表很小(例如示例表),您可能会遇到此问题并得到“奇怪”的结果。
您可能想尝试这个查询IN BOOLEAN MODE
看看您的结果是否符合您的预测。尝试这个。
SELECT *,
MATCH(tags) AGAINST ('tag3 tag6 tag4' IN BOOLEAN MODE) AS score
FROM items
ORDER BY score DESC
布尔模式禁用单词分布排名。请注意,您应该了解自然语言模式和布尔模式之间的区别,并且一旦您拥有一张大小合适的表格,就可以明智地选择使用哪一种模式。如果您正在搜索博客中包含的标签类型,布尔值可能是最佳选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)