代码之家  ›  专栏  ›  技术社区  ›  Harper Shelby damiankolasa

solr搜索和自动化web发布-它们能一起工作吗?

  •  1
  • Harper Shelby damiankolasa  · 技术社区  · 15 年前

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

    我希望能够基于生成缓存项的solr查询使缓存失效,但我遇到了一个绊脚石:对于1000多个solr查询,很难知道哪一个(如果有的话)适用于给定的文档。我们目前确定的方法包括:

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

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

    有人处理过类似的情况吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Mauricio Scheffer    15 年前

    solr为所有查询响应发出etag,并遵循标准的http缓存请求头,如if none match、if match等。 Solr And HTTP Caches

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

        2
  •  0
  •   Xodarap    15 年前

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