2011-04-22 87 views
0

我一直在寻找一种搜索方法在我的网站上的实现,但我一直没有能够决定最好的办法。可以搜索的内容放在六个不同的表格中。一个包含“标签”的表格包含“类别”,然后是包含标题列的四个表格。搜索网站内容的方法

我一直在寻找纯粹的sql搜索,但它似乎有点慢(我不能使用全文搜索索引),此外我希望搜索找到与搜索单词相似的单词的结果,而不是只是“完全匹配”,例如搜索一个拼写错误的单词“Memhis”也应该返回带有“Memphis”的内容。

您会采取哪种方法以及哪种算法/数据结构对此有好处?

回答

0

Lucene.NET似乎很受欢迎的网站搜索,我认为它可以做所有的模糊匹配的东西。它不需要SQL全文搜索。

+0

我一直在寻找Lucene.NET,但我还没有找到一些有关在内存中保留索引以及如何处理数据库中的更改/重建索引的文档? – aweis 2011-04-22 08:17:03

0

我会创建另一个连接所有不同列的表格列,然后在其上运行搜索。这是我在我的网站上完成的。要找到类似的词,应该有现有的插件来做到这一点。你不应该自己做。

1

如果您对嵌入式解决方案没有严格要求,我推荐使用Solr。简而言之,它通过HTTP公开Lucene。我们已经开始使用Lucene.Net,但我们切换到Solr并没有太长时间。它是用java编写的,但不需要编写任何Java代码。

可以使用DIH(我没有用过)或Solrnet(我们正在使用它)用c#/ .Net完成工作。

关于索引(重新)生成;它可以很简单,如每天重新生成索引一次或两次,或与触发器等更新单个条目或两者的组合。

它可能是一个陡峭的学习曲线,但我认为这是值得的时间,如果你能省下一些。