我想为网站实现搜索功能(假设它类似于SO).我不想使用谷歌搜索这样的东西.
我的问题是:
我该如何实现?
我知道有两种方法:
谁能告诉我哪条路走?优缺点都有什么?
更好,有没有更好的方法来做到这一点?
我们有一个网络应用程序,允许用户上载文档,创建自己的文档等。上传的文件存储在Amazon S3上,创建的信息存储在MySQL数据库中。我要寻找的是某种搜索引擎,在其中向我们提供所有文本文档(每个文档都有唯一的ID),并建立索引或其他内容。稍后,我可以给它提供搜索查询,它将检索出最佳匹配的文档(通过其ID),以及匹配的文本片段。
基本上,我们希望允许我们的用户搜索他们上传的资料的存储库,以及其他用户标记为公开的内容。该解决方案应该在标准的Linux服务器上运行,并且理想情况下将是开源的,但是如果价格不算太高,我还将考虑使用付费解决方案。
到目前为止,我已经找到了三个潜在的候选人:
如果我忽略了其他任何不错的选择,或者您有以上任何经验,请告诉我。
我和另一篇文章中描述的人有同样的问题.我的应用程序的日志文件很大(~1GB),而grep用于关联日志文件中的信息非常繁琐.现在我使用''less''工具,但它也比我想要的慢.
我在考虑加快搜索速度.有以下几种方法:首先,用XML生成日志并使用一些XML搜索工具.我不确定使用XML搜索会获得多少加速(我猜不多,因为非索引文件搜索仍需要很长时间).
其次,使用XML数据库.这会更好,但我在这里没有太多背景.
第三,使用(非XML)数据库.这有点单调乏味,因为必须编写表模式(上面的第二个选项也可以完成吗?).我还预见到一开始会改变很多模式以包含常见用例.理想情况下,我想要一个比完整的数据库更轻的东西来存储日志.
第四,使用lucene.它似乎符合目的,但有一种简单的方法来指定当前用例的索引吗?例如,我想说"每当你看到'迭代'这个词时索引".
你有什么意见?