【问题标题】:Solr search and automated web publishing - can they work together?Solr 搜索和自动网络发布——它们可以一起工作吗?
【发布时间】:2011-03-31 01:48:33
【问题描述】:

我正在处理使用 SOLR 生成基于查询的数据集的现有网络平台。我们在新内容的近实时(

我希望能够根据生成缓存项的 SOLR 查询使缓存无效,但我遇到了一个绊脚石:有 1000 多个 SOLR 查询,很难知道哪个(如果有的话)其中一些适用于给定的文件。到目前为止,我们确定的方法包括:

  1. 实例化 SOLR 实例,一次推送一个文档,然后运行查询以查看哪个命中。
  2. 构建内存中的 Lucene 索引,然后做同样的事情。
  3. 使用其他一些技术(SOLR 查询的手动解析)粗略估计哪些查询受到影响。

这些都不是真正理想的,但是如果没有某种方法来“扭转”流程并通过查询 CEP 样式运行文档,我不确定是否有更好的方法。

有没有人遇到过类似的情况?

【问题讨论】:

    标签: lucene solr


    【解决方案1】:

    我认为标准方法是从单个更改的文档中创建一个“索引”(使用memory index)。然后,您在此索引上运行数千个查询,如果查询匹配,则使该查询的缓存无效。由于索引很小并且完全在内存中,所以速度非常快。

    【讨论】:

      【解决方案2】:

      Solr 为所有查询响应发出 ETag,并遵循标准 HTTP 缓存请求标头,例如 If-None-Match、If-Match 等。请参阅 Solr And HTTP Caches

      所以这是一个围绕这个协调你的缓存系统的问题。

      【讨论】:

      • 看起来不错,但我认为我更大的问题在于向 Solr 索引添加数据。我有稳定的添加,有时可能包含大量内容。对此最痛苦的是将这些项目添加到 Solr 索引以及保持最佳性能所需的重新索引。如果我要执行 HEAD 请求来测试每条内容的缓存,恐怕我可能会很快让服务器瘫痪。
      • @Harper:你不需要发送 HEAD 请求来测试缓存,这不是 HTTP 缓存的工作方式。见grabner-online.de/div_into/html/ch11s03s04.html
      • @Harper:这样你就可以将缓存过期委托给它所属的 Solr。
      • 虽然严格来说,缓存的内容并不是 Solr 结果 - Solr 结果在下一级被拉到一起,也就是缓存发生的地方。
      • @Harper:有问题。如果不让 Solr 处理缓存过期,事情就会复杂很多。
      猜你喜欢
      • 2012-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      • 2020-05-29
      • 2021-03-05
      • 1970-01-01
      相关资源
      最近更新 更多