首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SolrJ是否执行缓存?

SolrJ是否执行缓存?
EN

Stack Overflow用户
提问于 2011-08-19 02:11:09
回答 1查看 514关注 0票数 2

我在我的web应用程序中使用Solr作为搜索引擎。我使用DataImportHandler自动将数据库中的数据导入到搜索索引中。当DataImportHandler添加新数据时,数据被成功地添加到索引中,但是当我使用SolrJ查询索引时没有返回数据:我必须重新启动应用服务器才能通过SolrJ找到数据。有没有在进行某种缓存?我在嵌入式模式下使用了SolrJ。下面是我的SolrJ代码:

代码语言:javascript
复制
private static final SolrServer solrServer = initSolrServer();
private static SolrServer initSolrServer() {
    try {
        CoreContainer.Initializer initializer = new CoreContainer.Initializer();
        coreContainer = initializer.initialize();
        EmbeddedSolrServer server = new EmbeddedSolrServer(coreContainer, "");
        return server;
    } catch (Exception ex) {
        logger.log(Level.SEVERE, "Error initializing SOLR server", ex);
        return null;
    }
}

然后,为了查询,我执行以下操作:

代码语言:javascript
复制
SolrQuery query = new SolrQuery(keyword);
QueryResponse response = solrServer.query(query);

如您所见,我的SolrServer被声明为静态的。我应该为每个查询创建一个新的EmbeddedSolrServer吗?我担心这会导致很大的性能损失。

EN

回答 1

Stack Overflow用户

发布于 2012-03-29 19:19:33

Solr Server的标准配置不提供自动提交。如果您有solrconfig.xml文件,请查找注释标记"autoCommit“。如果没有,那么在添加每个文档之后,您可以调用server.commit();,尽管对于大文档流,这可能会证明这是一个很大的性能问题(因为commit是相对繁重的操作)。

如果您在web应用程序中使用它,我建议在您的部署中使用solr-x.x.war,而不是EmbeddedSolrServer。这将为您提供丰富的Http界面,用于更新、管理和搜索索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7112046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档