我一直在寻找我的网站上的工具搜索方法,但是我无法确定最佳方法。可以搜索的内容放在六个不同的表中。一个表包含“标签”,一个包含“类别”,另外四个表包含标题列。
我一直在研究纯sql搜索,但它看起来有点慢(我不能使用全文搜索索引)而且我希望搜索能够找到与搜索词类似的结果,而不仅仅是“总匹配”,例如搜索拼写错误拼写单词“Memhis”也应该返回“Memphis”的内容。
您将采用哪种方法以及哪些算法/数据结构对此有用?
答案 0 :(得分:1)
如果您不是严格遵循嵌入式解决方案,我建议Solr。简而言之,它通过HTTP暴露Lucene。我们已经开始使用Lucene.Net,但我们切换到Solr并不需要太长时间。它是用java编写的,但你不需要编写任何java代码。
可以使用DIH(我没有使用它)或Solrnet(我们正在使用的一个)和c#/ .Net来完成工作。
关于索引(重新)生成;它可以像每天一次或两次重新生成索引一样简单,也可以与触发器等组合,更新单个条目或两者的组合。
这可能是一个陡峭的学习曲线,但我认为如果你能省下一些话,那值得花时间。
答案 1 :(得分:0)
我会创建另一个连接所有不同列的表列,然后对其进行搜索。这就是我在我的网站上完成的方式。要查找相似的单词,应该有现有的插件来执行此操作。你不应该自己做。
答案 2 :(得分:0)
Lucene.NET似乎非常受网站搜索的欢迎,我认为它可以完成所有模糊匹配的工作。它不需要SQL全文搜索。