【问题标题】:Document search and add engine web application文档搜索和添加引擎 Web 应用程序
【发布时间】:2016-04-08 10:37:27
【问题描述】:

我想开发一个 asp.net web 应用程序,它应该执行以下任务 a) 用户应该能够向文档添加内容。要添加的内容可以包括文本以及图像、屏幕截图等。 b) 用户应该能够根据一些关键字进行搜索。使用关键字搜索时,应向用户显示适当的内容以及图像(如果有)。

我不确定什么是正确的方法。我认为的一种方法是将文本内容存储在某个 xml 文件中,然后通过遍历 xml 的每个节点并显示来搜索关键字。但我不确定如何使用 xml 附加图像内容。如果随着时间的推移文档大小增加很多,这种方法似乎也不是很好和有效。

请任何人提出一些正确的方法来完成上述要求。任何提示将不胜感激。

【问题讨论】:

  • 使用 MagicWeasel 和一个大按钮。
  • @B.ClayShannon MagicWeasel 是某种开源搜索引擎吗?
  • 这是一个让你最疯狂的梦想成真的开发环境。
  • ....由大肆宣传的 Pedro Sanchez 创建。

标签: c# asp.net


【解决方案1】:

把它分成两个任务。编辑和搜索。

全文搜索已解决。只需使用Sphinx Search 即可完成。 Sphinx 使用简单,可以做你需要的一切。它具有 MySQL 接口(您的应用程序连接到 sphinx 的方式与连接到第二个 MySQL 数据库的方式相同)。

编辑有点复杂。如果我理解正确,您希望多个用户同时编辑单个文档。

我建议使用 websockets 来通知其他客户端有关文档的更改。长轮询和服务器发送事件具有丑陋的副作用,例如阻止浏览器向服务器发出另一个请求。为了在 Javascript 中实现客户端,我会使用 React、Angular 或类似的框架来使更新尽可能简单。

服务器端需要对文档进行修改友好的表示,因此如果一个用户更改了一个部分,而另一个用户更改了另一个部分,您的应用应该能够合并更改。更改完全不同的部分很容易,但更改相同的段落或文档节点可能会很棘手。每个更改的确切表示取决于您的文档格式。

我没有看到使用 XML 而不是任何其他格式的太多好处。这对于文档表示可能是实用的,但对于合并冲突修改没有帮助。我将从简单的字符串数组开始,每个字符串代表一个段落。一旦两个用户可以编辑同一个段落,将其扩展为完整的 XML 文档就很容易了。

要在 XML 中存储图像,只需使用它们的哈希作为文件名来存储文件,然后使用该名称在 XML 中链接文件。 Git 做同样的事情,而且效果很好。您可能需要计算引用以识别未使用的文件。

【讨论】:

    猜你喜欢
    • 2018-01-23
    • 2016-09-11
    • 2017-11-25
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多