0
我正在使用SOLR 4作爲應用程序,我需要在插入記錄後儘快搜索索引。查找SOLR中最後一個可搜索文檔的關鍵4
我正在使用下面的solrj代碼來獲取索引中的最後一個ID。但是,我注意到當我通過solr web管理器執行查詢時,我看到的最後一個ID往往落後於此。而且,直到我從下面的代碼片段獲得的最後一個ID,我的搜索纔會包含所有文檔。這是因爲硬承諾的延誤?我不需要切換到軟提交。我只是想確保我得到最後一個可搜索文檔的ID。這可能嗎?
SolrQuery query = new SolrQuery();
query.set("qt","/select");
query.setQuery("*:*");
query.setFields("id");
query.set("rows","1");
query.set("sort","id desc");
QueryResponse rsp = m_Server.query(query);
SolrDocumentList docs = rsp.getResults();
SolrDocument doc = docs.get(0);
long id = (Long) doc.getFieldValue("id");
更新:在下列方式solrj
我犯文件:
m_Server = new HttpSolrServer(m_Url);
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", id);
doc.addField("text", text);
m_Server.add(doc);
m_Server.commit();
有沒有可能是某些字段(ID,在這種情況下)在別人面前成爲搜索(文字, 在這種情況下)?
謝謝。我已經更新了這篇文章,告訴我如何對索引做出承諾。 – Joe
我可以在solrj中設置waitSearcher和waitFlush選項嗎?還是需要用新的配置設置重新啓動solr? – Joe
根據此頁面:http://wiki.apache.org/solr/UpdateXmlMessages默認情況下waitSearch爲true,waitFlush「沒有任何影響」。 – Joe