代码之家  ›  专栏  ›  技术社区  ›  Roman

ASP.NET搜索索引构建策略

  •  1
  • Roman  · 技术社区  · 14 年前

    这是我计划要做的,我很感谢任何人的意见:

    我已经在ASP.NET MVC中建立了一个论坛,现在想添加Lucene.NET进行搜索。我的计划是每隔5-10分钟运行一个索引生成器线程,用对每个讨论所做的更改更新搜索索引。

    它的工作方式是在搜索索引中保留索引生成器线程最后一次运行的日期和时间。然后在每次执行索引生成器时,我都从搜索中读取这个日期,然后索引自那个日期和时间以来的任何更改。完成后,我会更新最后一个运行条目。

    这条路好吗?有人能提出一个更好的方法来增加论坛应用程序中的索引更改吗?

    1 回复  |  直到 13 年前
        1
  •  1
  •   chakrit Dutchie432    14 年前

    你需要保持一个计时器…如果索引操作在5分钟内没有停止,另一个将开始索引相同的更改,因此您还必须检查这种情况。

    更好的方法是简单地使用一个保持活动的专用索引线程。这个线程将从上一次运行中获取更改并按您描述的方式处理它们,但不会等待。索引操作完成后,它将立即重新启动,并在项目进入时继续索引。

    如果没有其他要索引的项目,线程将休眠5分钟(然后在唤醒时重新检查更改)。

    这样,您就可以确保每次修改索引时只有一个客户机。它永远不会占用大量的CPU,如果你以某种方式管理了计时器,或者你突然收到了大量的帖子,它会随着论坛的发展而扩展,而不需要不时地调整索引间隔。

    不过,您需要监视线程的运行状况。