我一直在寻找一种在我的网站上实现的搜索方法,但是我无法确定最佳方法。可搜索的内容放置在六个不同的表中。一张包含“标签”的表,一张包含“类别”的表,然后是四个表,每个表包含一个标题列。
我一直在研究纯sql搜索,但它似乎有点慢(我不能使用全文搜索索引),而且我希望搜索找到与搜索单词相似的单词的结果,而不仅仅是“总匹配数”例如搜索拼写错误的单词“Memhis”也应该返回包含“Memphis”的内容。
您将采用哪种方法以及哪些算法/数据结构适合此目的?
最佳答案
如果您不是严格追求嵌入式解决方案,我建议 Solr 。简单地说,它通过 HTTP 公开 Lucene。我们一开始使用的是 Lucene.Net,但没过多久我们就切换到了 Solr。它是用 java 编写的,但您不需要编写任何 java 代码。
可以使用DIH (我没用过)或者Solrnet (我们正在使用的一个)与 c#/.Net 一起完成工作。
关于索引(重新)生成;它可以像每天重新生成一次或两次索引一样简单,也可以与触发器等结合起来更新单个条目,或两者的组合。
这可能是一个陡峭的学习曲线,但我想说,如果您能抽出一些时间,那么这是非常值得的。
关于c# - 网站内容的搜索方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5753490/