Solr搜索和自动化网络发布 - 它们可以一起工作吗?

时间:2010-08-17 15:41:20

标签: lucene solr

我正在处理使用SOLR生成基于查询的数据集的现有Web平台。我们有近乎实时(<1分钟)发布新内容的问题。有一个缓存机制可以帮助减少SOLR服务器上的资源负载,但是这种缓存会在基于SOLR查询的数据集中引入新内容的延迟时间。

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

  1. 实例化一个SOLR实例,一次按下一个文档,然后运行查询以查看哪个命中。
  2. 构建内存中的Lucene索引,并执行相同的操作。
  3. 使用其他一些技术(SOLR查询的手动解析)来粗略估计哪些查询受到影响。
  4. 这些都不是真正理想的,但如果没有某种方法来“转过”流程并通过查询CEP风格运行文档,我不确定是否有更好的方法。

    有没有人处理类似情况?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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