松散的搜索方法

时间:2012-02-15 21:13:42

标签: php algorithm search search-engine information-retrieval

我想为我的网站制作一个搜索选项,为了好玩我觉得我至少应该尝试自己制作(如果我失败了,总会有谷歌自定义搜索)。

问题是,我甚至不知道如何接近这个怪物!以下是要求:

  • 搜索中不需要所有关键字(如果搜索“大幸福世界”,它还会搜索“大世界”“快乐世界”等)
  • 常见的拼写错误注意事项(来自数据库,通过编辑差异或常见错误的预定义列表(而不是等于=&而不是等)。
  • 在帖子的内容和标题中搜索,并在标题上设置。
  • 不要吮吸

我搜索了我的老朋友谷歌,但我发现的唯一合理的事情是关于这个主题的学术水平的论文(英语不是我的母语,我很好,但不是那么好=()。

简而言之:有没有人知道一个好的起点,一个教程,一篇文章,一个例子?

提前致谢。

2 个答案:

答案 0 :(得分:5)

您可以尝试多种选择:

  • Apache Lucene(Zend Framework中存在基于PHP的实现)
  • ElasticSearch(在Lucene之上提供类似REST的API)
  • 的Xapian
  • 斯芬克斯

也可能是其他一些人。

答案 1 :(得分:2)

如果您想创建自己的搜索引擎,apache lucene是一个成熟的开源库,可以为您处理大部分功能。

使用lucene,您首先使用IndexWriter]索引您的信息。这是离线完成,以创建索引。
在搜索时 - 您使用IndexSearcher查找与您的查询匹配的文档。

如果您需要一些关于“它是如何工作”的理论知识,您应该在information retrieval上阅读更多内容。一个好的起点是斯坦福的introduction to information retrieval