我在我的web應用程序中使用Solr作爲搜索引擎。我使用DataImportHandler自動將數據庫中的數據導入搜索索引。當DataImportHandler添加新數據時,數據已成功添加到索引,但在使用SolrJ查詢索引時不會返回數據:我必須重新啓動我的應用程序服務器才能找到SolrJ找到的數據。是否有某種緩存正在進行?我在嵌入式模式下使用SolrJ。這裏是我的SolrJ代碼:SolrJ是否執行緩存?
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;
}
}
然後詢問我做到以下幾點:
SolrQuery query = new SolrQuery(keyword);
QueryResponse response = solrServer.query(query);
正如你看到的,我的SolrServer被聲明爲靜態的。我應該爲每個查詢創建一個新的EmbeddedSolrServer嗎?恐怕會招致很大的表現處罰。
SolrJ不緩存。我對DIH不熟悉 - 但是你確定你正在提交?最後 - 你可能會在[email protected]上得到更多的開發人員的愛。 –