全文搜索SQL
问题描述:
表结构(类型:MyISAM数据)全文搜索SQL
user_name varchar(30)
function_type varchar(30)
function_name varchar(30)
function_description text
FULLTEXT:
KEYNAME: TYPE: FIELD:
PRIMARY BTREE BTREE function_name
full_text FULLTEXT function_description
,我已经在列 “function_description” 这些值:
function_description:
akram lofaif
that is das
akram is blum test
adnan is fine
当我试图找回像这样的一些值:
SELECT * FROM functions
WHERE MATCH (function_description)
AGAINST ('akram' IN NATURAL LANGUAGE MODE)
它没有回报任何东西!
答
为Fulltext Indexes状态的文档,是一个全文搜索的词产生任何结果,如果出现这个词过于频繁:
,表中的匹配行半字是不太可能 找到相关文件。事实上,它最有可能找到大量不相关的文档。我们都知道,当我们 试图通过搜索引擎在互联网上找到某些东西时,这种情况经常发生。它有这样的推理,即包含这个词的行被分配了一个 对于它们出现的特定数据集的低语义值。一个 给定字可能会达到50%的阈值在一个数据集中,但不是 另一个。
如果您只是试用它,请在表格中添加更多的数据,其中不包含单词akram
,以减少识别的行数。
如果这应该是你生产的表,你可能想尝试的BOOLEAN
模式,它不遵循自然语言的限制:
SELECT * FROM functions
WHERE MATCH (function_description)
AGAINST ('akram' IN BOOLEAN MODE)