在mysql上进行自定义全文本搜索(创建索引文件)
||
我想进行自己的自定义全文搜索,但是我不确定哪种方法可以最好地创建索引表。
好的,我将文本字段提取出来,并将所有大于3的单词提取到索引表中。但是我必须存储什么呢?单词,我要搜索的表的ID?还要别的吗?词频?
和支持的问题:如何将文本字段拆分为单词,是否有任何mysql函数,还是应该使用服务器端语言来实现?
更新:为了使事情变得清楚:我不需要全文搜索,只需搜索文本字段所有记录中的单词的单词列表,因此我可以用LIKE \'word%\'搜索结尾
没有找到相关结果
已邀请:
3 个回复
臂哦
称为
(不进行相关计数),则应实现以下基本功能:
,一种将字符串拆分为单词的算法。这在英语中是微不足道的,但是对于某些在单词之间不使用空格的亚洲语言来说可能是个问题。 可选地,一个“ 3”算法,该算法将单词还原为基本形式,从而使“ 4”和“ 5”都变为“ 6”。 可选地,一种“ 7”算法,用于纠正常见的拼写错误。 可选地,一个“ 8”,它将同义词简化为它们的常见形式。 所有这些的结果是您拥有一个像这样的字符串:
分解为单词的基本形式,并替换了同义词并纠正了错误:
然后,您只需在
上创建一个复合索引,其中
是基本形式,而
是所索引记录的
。 要查询
,您应该在索引中搜索这些单词并在
上找到一个交集。相交的“ 13”将包含两个单词。 如果要考虑相关性,则还应该在整个语料库的单独索引中维护每个单词的统计信息。 我应该警告您,这不是一个简单的任务。只需看一下
源代码。
捅瓶啡
参见:http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html#function_match
冲汉
现在,您可以使用