对这个问题含糊不清的性质表示道歉,但老实说我不太清楚从哪里开始,并且我想在这里寻求指导。
作为练习,我已经下载了几篇学术论文,并将它们作为纯文本存储在mongoDB数据库中。
我想编写一个搜索功能(使用Python,R,无论如何),当您输入文本并返回最相关的文章时。显然,相关的真的很难 - 这就是google做得很好的事。
然而,我并不是在寻找它是完美的。只是得到一些东西。我的一些想法是:
1)简单的MongoDB全文搜索
2)实施Lucene搜索
3)标记它们(不确定如何)然后按最大数量的标签返回它们?
是否有人使用过开箱即用的解决方案并且工作得相当好?我可以随时优化搜索功能 - 现在我只想让所有部分一起移动......
谢谢!
答案 0 :(得分:1)
是否有人使用过这种解决方案并且工作得相当好的解决方案?
这取决于你如何定义井,但简单来说,我说不。 没有单一且准确的定义。当试图实现良好的搜索算法时,会出现特定问题固有的许多挑战。这些挑战在于:
有些算法被证明比其他算法更好,因此从一开始就很好。 TF*IDF和BM25两个最受欢迎。
我以后可以随时优化搜索功能 - 现在我只想让所有部分一起移动......
MongoDB或任何具有全文索引支持的RDBMS足以用于概念验证,但如果您需要针对搜索性能进行优化,则需要反向索引(Solr / Lucene)。从Solr / Lucene您将有能力管理:
这是首先想到的。
因此,如果您计划解决这些问题,我绝对建议将Lucene作为框架,或者Solr / ElasticSearch作为搜索系统,如果您需要快速构建概念验证。如果没有,MongoDB / RDMS将运行良好。