我想在我的网站上使用数据库搜索,所以我考虑使用有效的算法。
例如,如果我尝试搜索“你好,我的名字是 xxx”,我想查看结果:
你好,我叫约翰
你好,我叫彼得
你好先生。 xxx
他的名字是彼得
他在这里
所以我想用这段文本的一部分从数据库中搜索所有数据,并按匹配词的数量对结果进行排序。
我做了算法,但我很害怕它如此复杂和缓慢:
我将搜索文本拆分为单词,并使用带有多个 like 或命令的 SQL select。然后我将这个结果保存到列表中。然后我计算每个结果中匹配单词的数量,并根据这个数量对它进行排序。
问题是当我尝试搜索长文本时。
我应该使用更好的算法还是应该学习一些像 Sphinx 这样的想法
最佳答案
对于前两个结果,简单的正则表达式搜索应该能够检索到这样的结果。 对于后者,您可能会考虑使用现有的搜索库,例如 Google Search Appliance , 可用于搜索数据库信息。
关于algorithm - 多词网络搜索算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16998793/