松散的搜索方法

Loose searching approach

提问人:Madara's Ghost 提问时间:2/16/2012 最后编辑:amitMadara's Ghost 更新时间:2/16/2012 访问量:479

问:

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

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

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

我已经在我的老朋友谷歌上搜索了它,但我找到的唯一合理的东西是关于这个主题的学术水平论文(英语不是我的母语,我很好,但不是那么好=( )。

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

提前致谢。

PHP 算法 搜索 搜索引擎 信息检索

评论

1赞 Jani Hartikainen 2/16/2012
那么,您真的想构建一个全文搜索引擎(这就是通常所说的),还是想要对现有项目进行建议,从而对工作进行推荐?
0赞 Madara's Ghost 2/16/2012
我想尝试构建一个文本搜索引擎(对于一个帖子不多的网站),但现有的项目也将非常受欢迎。

答:

5赞 Jani Hartikainen 2/16/2012 #1

您可以尝试以下几种方法:

  • Apache Lucene(Zend Framework 中存在基于 PHP 的实现)
  • ElasticSearch(在 Lucene 之上提供类似 REST 的 API)
  • Xapian
  • 狮身人面像

可能还有一堆其他的。

2赞 amit 2/16/2012 #2

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

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

如果你想了解一些关于“它是如何工作的”的理论知识,你应该阅读更多关于信息检索的信息。斯坦福大学的信息检索入门是一个很好的起点