我开始学习NoSQL,但是我找不到RavenDB的一些好例子。任何人都可以告诉我如何添加Word,PDF,Excel,...二进制文档作为RavenDB中的附件并搜索该文档的内容?那有什么例子吗?那可能吗? 我怎样才能为此制作MVC应用程序?
答案 0 :(得分:2)
首先,了解当我们在NoSQL中谈论“文档数据库”时,我们不是在谈论Word,PDF,Excel文档。我们通常谈论的是JSON格式的文档,它代表一些特定的数据,通常是从域实体序列化的。绝大多数RavenDB都专注于处理这类数据。
但是,您确实可以使用您正在谈论的那种文档。它是通过附加的“捆绑”完成的,而不是内置的东西。它被称为“索引附件捆绑”,我写了它。您将找到源代码here。还有单元测试显示它是如何使用的。例如,请参阅this test。如果您有兴趣突出显示搜索结果,请参阅this test。
该捆绑包使用Windows IFilters从二进制文档中提取文本。对于计划在本地系统上安装的文档类型,您将需要适当的IFilter。如果您计划对PDF文件做很多事情,我强烈推荐the Foxit PDF IFilter。它比Adobe更好更快。如果您只使用Word和Excel文档,则可能需要Microsoft的Office IFilter - 下载x86或x64以及Service Pack。
安装适当的IFilter后,只需将附件上传到RavenDB即可。该捆绑包将拦截上传,使用IFilter提取其内容,将内容保存到JSON文档,并将该文档编入索引以便于搜索。
您还可以从Nuget here获取该捆绑包的编译版本。 dll需要进入RavenDB服务器上的plugins目录。
我目前没有使用此捆绑包的应用程序或网站的完整端到端示例。我也没有关于这个软件包的任何文档 - 所以一定要仔细阅读单元测试。
如果您只需要有关附件的信息,而不是索引或搜索附件,那么您应该阅读RavenDB documentation。