我正在使用同义词列表来指导查询扩展过程。格式如下所示:
fu=foo
ba=bar
etc=etcetera
werd=word
我正在使用一个简单的二进制搜索算法来针对这个列表运行每个用户输入的单词。问题是,在使用短语时。
quick brown fox=alphabet
out of this world=space
why hello there=hello
典型输入:why hello there, where can I get an out of this world hopper?
所需的输出是:hello, where can I get an space hopper?
我也不想运行每个单词对或三次搜索,并且我想避免对输入的词库列表进行线性搜索,因为这是低效的(尽管列表应该很小,所以这是一个选项)。
因此,我正在寻找对短语运行二进制搜索的方法,或者以补偿短语的方式构建词库。
我为此使用PHP。欢迎提出任何建议。