文档搜索和添加引擎web应用程序
本文关键字:web 应用程序 引擎 添加 搜索 文档 | 更新日期: 2023-09-27 18:28:52
我想开发一个asp.net web应用程序,它应该完成以下任务a) 用户应该能够将内容添加到文档中。要添加的内容可以包括文本、图像、屏幕截图等。b) 用户应该能够根据一些关键字进行搜索。当使用关键字进行搜索时,应该向用户显示适当的内容以及图像(如果有的话)。
我不确定应该采取什么样的适当做法。我认为一种方法是将文本内容存储在某个xml文件中,然后通过遍历xml的每个节点并显示来搜索关键字。但我不知道如何用xml附加图像内容。此外,如果随着时间的推移,文档大小增加了很多,这种方法似乎也不太好和有效。
任何人都请提出一些正确的方法来满足上述要求。任何提示都将不胜感激。
将其拆分为两个任务。编辑和搜索。
全文搜索解决了这个问题。只需使用狮身人面像搜索,您就完成了。狮身人面像使用简单,可以做任何你需要的事情。它有MySQL接口(您的应用程序连接到sphinx的方式与连接到第二个MySQL数据库的方式相同)。
编辑有点复杂。如果我理解正确,您希望多个用户同时编辑单个文档。
我建议使用websocket来通知其他客户文档中的更改。长时间轮询和服务器发送的事件具有丑陋的副作用,比如阻止浏览器向服务器发出另一个请求。为了在Javascript中实现客户端,我会使用React、Angular或类似的框架来尽可能简化更新。
服务器端需要文档的修改友好表示,因此,如果一个用户更改了一个部分,另一个用户则更改了另一部分,则您的应用程序应该能够合并更改。更改完全不同的部分很容易,但更改同一段落或文档节点可能会很棘手。每个更改的确切表示取决于文档的格式。
我看不出使用XML而不是任何其他格式有多大好处。对于文档表示来说,它可能是实用的,但对于合并冲突的修改没有帮助。我会从一组简单的字符串开始,每个字符串代表一个段落。一旦两个用户可以编辑同一段落,将其扩展到完整的XML文档是很容易的。
要将图像存储在XML中,只需使用其哈希作为文件名来存储文件,然后使用该名称将文件链接到XML中。Git也做同样的事情,而且效果很好。您可能需要对引用进行计数,以识别未使用的文件。