我正在学习并使用 mysql 查询运行一些测试,例如:
mysql> SELECT * FROM articles
WHERE MATCH (title,body)
AGAINST ('$term' IN NATURAL LANGUAGE MODE);
Run Code Online (Sandbox Code Playgroud)
我的问题是 >> 以下各项的使用有何不同:
//1// AGAINST ('$term' IN NATURAL LANGUAGE MODE)
//2// AGAINST ('$term' WITH QUERY EXPANSION)
//3// AGAINST (? IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)
我不是想改进我的代码,我只是想了解它背后的想法。
小智 5
3种全文检索的特点:
在自然语言模式下......您的搜索词将被视为自然语言(人类语言)。所以这里没有特殊字符,除了“(双引号)。搜索时将排除停用词列表中的所有单词!
IN BOOLEAN MODE ... 运算符可以添加到您的搜索词中。这意味着您可以指定有关搜索的额外愿望。停用词列表规则当然也适用,这意味着它们将从您的搜索中排除。
WITH QUERY EXPANSION(或 IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION)...正如这个姓氏暗示了对 IN NATURAL MODE 的扩展。所以它与上面提到的第一种模式基本相同,除了这个功能:将与您的初始搜索词找到的最相关的词添加到您的初始搜索词中,并执行最终搜索。如果您同意以这种方式定义有趣的内容,该查询将返回包含您的搜索词和可能感兴趣的内容的更广泛的结果。:)
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |