我有一個lucene索引,我使用原始lucene索引器進行構建和更新。我想知道是否有辦法強制solr在不重新啓動solr實例的情況下重新讀取索引。我試過更新?提交=真,但它似乎並不重要。唯一的辦法是我可以肯定solr重新讀取索引是通過重新啓動,這當然在生產環境中並不理想。強制Solr從更新索引讀取
1
A
回答
1
如果您使用的是多核設置,那麼您可以僅使用reload那個單核。 AFAIK,當核心被重新加載時,對該核心的請求排隊。
0
不知道是否有另一種更好的方法來做到這一點。 但我寫了這個腳本來執行完整或增量導入。
#!/bin/bash
# script to index Solr
# by Felipe Ferreira Sept 2013
TYPE=$1
DATE=`date +%d_%m_%y`
DATEFULL=`date +%H:%M:%S_%d_%m_%y`
LOG="/var/log/solr/solr_import_${TYPE}_${DATE}.log"
LOGTMP="/var/log/solr/solr_status_${DATE}.log"
URL="http://<SERVER>:8080/solr/dataimport?command=status"
pt() {
echo -e $1
echo -e $1 >> $LOG
}
if [ $TYPE == "full" ]; then
pt "$DATEFULL - Starting full import"
URL="http://<SERVER>:8080/solr/dataimport?command=full-import"
# CMD="curl --location --no-buffer --fail --silent --output ${LOG} '${URL}'"
CMD="curl --location --silent --no-buffer '${URL}' >> $LOG"
pt "Executing $CMD"
CMD_E=`eval $CMD`
pt $CMD_E
elif [ $TYPE == "delta" ]; then
pt "$DATEFULL - Starting delta import"
URL="http://<SERVER>:8080/solr/dataimport?command=delta-import"
#CMD="curl --location --no-buffer --fail --silent --output ${LOG} '${URL}'"
CMD="curl --location --silent --no-buffer '${URL}' >> $LOG"
pt "Executing $CMD"
CMD_E=`eval $CMD`
pt $CMD_E
else
pt "ERROR - $TYPE not found, only delta or full,\n Usage: $0 delta/full"
fi
sleep 3
#check status after command
pt "$DATEFULL - Checking $TYPE status"
URL="http://infofish2:9080/solrcadin/cadin/dataimport?command=status"
CMD="curl --location --silent --no-buffer '${URL}' > $LOGTMP"
pt "Executing $CMD"
CMD_E=`eval $CMD`
pt $CMD_E
CHECK=0
CHECK=`grep -c failed $LOGTMP`
if [ $CHECK -eq 0 ]; then
pt "OK - Command $TYPE executed with success!"
exit 0
else
pt "CRITICAL - Command $TYPE failed, solr did not index!"
pt "grep -c failed $LOGTMP"
pt "CHECK $CHECK"
exit 0
fi
相關問題
- 1. 從Lucene索引更新Solr索引
- 2. Solr更新索引
- 3. 如何從solr索引讀取?
- 4. 如何從Solr中讀取Lucene索引
- 5. 強制刷新/更新數據讀取
- 6. Solr - 索引自動更新
- 7. 如何更新solr索引?
- 8. 由nutch更新solr索引
- 9. 通過查詢更新Solr索引
- 10. Solr部分文檔索引更新
- 11. Apache Solr XPathEntityProcessor DIH - 索引更新
- 12. SOLR內存不足錯誤讀取索引大型索引時
- 13. solr複製Solr索引兼容
- 14. Solr重新索引行爲
- 15. 重新索引SOLR文檔
- 16. Windows桌面搜索 - 現在從命令行強制重新索引/索引
- 17. 獲取SOLR索引大小
- 18. Solr索引拉取失敗
- 19. 強制couchbase在集成測試時更新視圖索引
- 20. 強制Nexus更新/創建存儲庫索引
- 21. 如何更有效地更新更大的solr索引
- 22. 總是強制引用的DLL更新?
- 23. 強制引用不是「已更新」
- 24. 在搜索後強制更新視圖
- 25. 我如何知道在solr索引中更改,更新和索引的文檔?
- 26. 索引數據,從Python代碼以JSON格式Solr的更新網址不更新Solr的記錄
- 27. Android:從Socket讀取時強制關閉
- 28. 試圖強制索引MYsql
- 29. 在oracle中強制索引
- 30. 強制索賠從STS刷新到RP
如果我不是? – recursive9 2010-10-19 15:25:48
我不知道在不使用核心的情況下是否可以發送重新加載。但是,只有一個核心的情況下使用多核設置沒有任何問題。它不會增加任何重要的開銷。 – 2010-10-19 15:35:46