如何在网站中实现搜索功能?

Niy*_*yaz 66 search

我想为网站实现搜索功能(假设它类似于SO).我不想使用谷歌搜索这样的东西.

我的问题是:

我该如何实现?

我知道有两种方法:

  1. 当用户提出查询时,搜索应用程序中的所有数据库.
  2. 索引我拥有的所有数据并将其存储在其他地方并从那里查询(就像Google所做的那样).

谁能告诉我哪条路走?优缺点都有什么?

更好,有没有更好的方法来做到这一点?

paa*_*aan 36

使用lucene,
http://lucene.apache.org/java/docs/

Apache Lucene是一个完全用Java编写的高性能,功能齐全的文本搜索引擎库.它是一种适用于几乎所有需要全文搜索的应用程序的技术,尤其是跨平台搜索.

它在java和.net中可用.它也是以zend框架模块的形式在php中提供的.

Lucene做你想要的(搜索项目的索引),你必须跟踪lucene索引,但它比在性能方面做数据库搜索要好得多.BTW,SO搜索由lucene提供支持.:d


Pet*_*ann 34

这取决于您的网站的综合程度以及您想要自己做多少.

如果您正在运行一个小型网站而没有进一步添加自定义搜索的可能性,那么让谷歌进行工作(可能添加站点地图)并使用谷歌自定义搜索.

如果运行带有sql引擎的中型站点,请使用sql引擎的搜索功能.

如果运行像J2EE或.Net这样较重的软件堆栈,请使用Lucene,一个强大的搜索引擎或者它的.Net克隆lucene.Net

如果您想从应用程序中抽象出搜索,并能够使用XML/HTTP和JSON API以语言中立的方式查询它,请查看solr.Solr在后台运行lucene,但为它添加了一个不错的Web界面.

  • 我对此有疑问.我可以实施针对Intranet网站的Google自定义搜索吗?如果我这样做,我的公司会面临风险吗?我宁愿不写自己的逻辑. (3认同)