【问题标题】:Apache SOLR - Searcher options & commitsApache SOLR - 搜索器选项和提交
【发布时间】:2016-10-31 07:04:30
【问题描述】:

我正在通过 manning 阅读 Solr in Action 并且对提交和各种搜索器预热选项几乎没有疑问。

属性告诉 solr 根据指定的时间间隔 (maxTime), doc Count (maxDocs) 提交要写入磁盘的文档。

问题 1 : - maxTime 和 maxDocs 是否可以同时给出,或者它们是否相互排斥

自动提交有一个子属性调用 openNewSearcher 。

这本书说 openNewSearcher 如果在每次提交时设置为 true (基于时间或计数),一个新的搜索器将被初始化和预热。

问题 2:虽然发生这种情况,但在提交提交后发出的所有查询都会被阻塞,直到搜索者被预热。

问题 3:提交提交时正在进行且尚未完成执行的查询会发生什么

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    maxTime and maxDocs can be set:

    如果达到这些 maxDocs 或 maxTime 限制中的一个,Solr 会自动执行提交操作。如果缺少 autoCommit 标记,则只有显式提交才会更新索引。是否使用自动提交取决于您的应用程序的需求。

    关于阻塞 - Solr 默认不阻塞。新搜索器准备就绪后将可用。您可以使用 waitSearcher 选项明确提交说“嘿,我想等到我确定新的搜索器可用后再继续”。你真的不应该这样做。您仍然可以在提交期间向 Solr 发送更新。

    之前的搜索者应该在关闭之前关闭任何正在进行的活动查​​询。

    【讨论】:

    • 谢谢。关于问题 #2,这是否意味着如果 openNewSearcher 为 autocommit 设置为 true ,新的搜索器即使没有预热也可以立即为新查询提供服务?此外,如果为显式提交将 waitSearcher 设置为 true,则客户端查询将阻塞,直到新搜索器完全预热。如有错误请指正
    • 不,waitSearcher 会阻止客户端发出请求,以便您知道新搜索器何时可用。据我记得,在您的提交客户端等待时仍然会提供查询。关于变暖,如果我没记错的话,在变暖之前搜索器将不可用,但旧搜索器仍会提供内容。
    • Ok ,这意味着如果设置为 true 的 waitSearcher 只是为了让提交客户端知道这样一个事实(如果 wait = true),一旦提交调用返回,新的搜索器可用并被加热。在提交调用返回之前,查询客户端会看到陈旧的数据。请确认。如果 waitSearcher = false ,提交调用将立即返回(假设在将内容写入磁盘之后),而升温发生在后台。在这种情况下,查询客户端是否会由部分加热的搜索器提供服务?
    猜你喜欢
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多