是否可以优化查询?
我有一个数据库,id、标题、描述、关键字作为列,我需要按照相关顺序进行查询并得到结果。
我需要使用更多的关键字,我应该使用AND或or还是以其他方式构建查询?
SELECT *, MATCH (title) AGAINST ('earth AND food AND money'
IN NATURAL LANGUAGE MODE) AS SCORE
FROM _table
WHERE MATCH (title) AGAINST ('earth AND food AND money'
IN NATURAL LANGUAGE MODE)
或
SELECT *, MATCH (title) AGAINST ('earth OR food OR money'
IN NATURAL LANGUAGE MODE) AS SCORE
FROM _table
WHERE MATCH (title) AGAINST ('earth OR food OR money'
IN NATURAL LANGUAGE MODE)
或者?
感谢
您需要将搜索词与链接中提供的字符组合
MySQL使用有时被称为隐含布尔逻辑的东西,其中
+ stands for AND
- stands for NOT
[no operator] implies OR
有关更多信息,请参阅手册
所以你的第一个查询是
SELECT
*,
MATCH (title) AGAINST ('+earth +food +money' IN NATURAL LANGUAGE MODE) AS SCORE
FROM
_videvotradotto
WHERE
MATCH (title) AGAINST ('+earth +food +money' IN NATURAL LANGUAGE MODE)
和第二个
SELECT
*,
MATCH (title) AGAINST ('earth food money' IN NATURAL LANGUAGE MODE) AS SCORE
FROM
_videvotradotto
WHERE
MATCH (title) AGAINST ('earth food money' IN NATURAL LANGUAGE MODE)
"蚯蚓;以及";缺少";包含在CCD_ 1中。所以LIKE会给你额外的单词。
(我无法解释为什么会出现更大的"720"。(考虑尝试IN BOOLEAN MODE
。
你真的应该看看文件来观察这两个";"异常";,以及可能的其他异常。
同时,"AND"one_answers"OR"可能是"AND";停止单词";。这意味着他们被忽视了。(人们希望"the"在英语中被忽略!(
同时,nbk解释了如何在全文中进行AND和OR运算。