怎么用c++实现模糊搜索

来源:百度知道 编辑:UC知道 时间:2024/05/27 13:10:19
用c++实现模糊搜索,要搜索的数据放在一个文本中(非数据库),比如文本中存有数据“c++基础教程”“c++高级教程”这几项,输入“c++ 教程”就会搜索出“c++基础教程”“c++高级教程”这两个结果。功能和百度搜索的功能类似。
那位高人可以指点一下,说一下思路就可以,不胜感激~~

我没做过这方面的东西,我说一下我的一个笨方法吧,能起到抛砖引玉的作用就行了。

search(keyword)
{
/*
根据某种算法,将keyword分成几个基本的
关键词,例如对于上面提到的“C++教程”,
可以分成“C++”和“教程”两个关键词。
具体的方法我不会,但是我想最笨也可以建
立自己的样本库吧,里面包括了常用的基本
关键词,然后我把keyword拿去和样本做比较
总可以吧。
*/
splitKeyword(keyword);

/*
定义变量maxInterval,表示拆分后的多个基
本关键词之间的最大允许间隔。比如假定这个
值是4,并且假定一个汉字也仅占一个字符,
那么当搜索“c++教程”时,将其拆分“C++”
和“教程”。对于“C++程序设计教程”,我们
认为它是符合要求的;而对于“C++高级语言程
序设计”,由于两个基本关键词之间的间隔已经
超出了我们定义的最大间隔,因此我们认为这个
结果是不符合要求的。
*/
const int maxInterval = 4;

while (读取文件内容并且没有到达文件末尾)
{
搜索第一个关键词“C++”;
搜索第二个关键词“教程”;
if (它们之间的间隔 <= maxInterval)
{
找到了符合要求的搜索结果;
两个关键词及其中间的部分完整输出;
}
else
{