2012-02-15 65 views
3

我想为我的网站做一个搜索选项,为了好玩,我决定至少应该尝试自己做(如果我失败了,总会有谷歌自定义搜索)。松散的搜索方法

的问题是,我甚至不知道如何处理这个怪物!这里是要求:

  • 并非所有关键字搜索需要(如果一个搜索“大欢乐世界”的同时,也会搜索“世界之大”,“欢乐世界”等)
  • 常见拼写错误的考虑(从数据库,通过编辑差或方法的常见错误的预定义列表(而不是=>而不是等)。在内容
  • 搜索和帖子的标题,与标题的emphesis。
  • 不吸

我已经搜索了我的老朋友谷歌它,但我发现的唯一合理的事情是关于这个问题的学术级文件(英语不是我的本地人,我很好,但不是很好=()。

所以简而言之:没有人知道一个好的开始,教程,文章,例子吗?

在此先感谢。

+0

所以,做你真正想要构建一个全文搜索引擎(这就是这些通常被称为),或者你想现有的项目建议,这些建议将这一工作呢? – 2012-02-15 21:15:49

+0

我想尝试构建一个文本搜索引擎(对于帖子数量不多的单个网站),但现有的项目也将非常受欢迎。 – 2012-02-15 21:16:50

回答

2

如果你想创建自己的搜索引擎,apache lucene是可以为你的功能的重要组成部分的护理成熟的开源库。

使用Lucene,你先索引你的信息[使用IndexWriter。这是离线完成的,以创建索引。
在serach上 - 您使用IndexSearcher来查找与您的查询匹配的文档。

如果您想对“如何运作”,你应该多看关于information retrieval一些理论知识。一个良好的开始是斯坦福大学的introduction to information retrieval

5

有几个选项,你可以尝试:

  • 的Apache Lucene的(一个基于PHP实现在Zend框架存在)
  • ElasticSearch(Lucene的顶部提供了一个类似于REST的API)
  • Xapian的
  • 狮身人面像

大概一堆别人的了。

+0

+1 - Sphinx是一个很好的开源搜索服务器。 – 2012-02-15 21:22:57