我正在處理使用SOLR生成基於查詢的數據集的現有Web平臺。我們有一個接近實時(< 1分鐘)發佈新內容的問題。有一種緩存機制可以幫助減少SOLR服務器上的資源負載,但是這種緩存會在基於SOLR查詢的數據集中出現新內容時引入滯後時間。Solr搜索和自動化網絡發佈 - 他們可以一起工作嗎?
我希望能夠根據生成緩存項目的SOLR查詢來使緩存無效,但我碰到了一個絆腳石:有1000多個SOLR查詢,很難知道哪個(如果有的話) )適用於給定的文件。目前我們已經確定的方法包括:
- 實例化SOLR實例,一次推送單個文檔,然後運行查詢以查看哪個命中。
- 構建一個內存中的Lucene索引,並做同樣的事情。
- 使用其他一些技術(手動解析SOLR查詢)來粗略估計哪些查詢會受到影響。
這些都不是真的很理想,但沒有一些方法來「轉向」過程並通過查詢CEP風格運行文檔,我不確定有更好的方法。
有沒有人處理過類似的情況?
看起來不錯,但我認爲我的大問題是圍繞向Solr索引添加數據。我有穩定的補充,有時可能會有大量內容。最令人痛苦的是將這些項目添加到Solr索引以及保持最佳性能所需的重新索引。如果我要做一個HEAD請求來測試每一部分內容的緩存,恐怕我可能會很快使服務器癱瘓。 – 2010-08-17 18:03:08
@Harper:你不需要發送HEAD請求來測試緩存,這不是HTTP緩存的工作方式。請參閱http://www.grabner-online.de/div_into/html/ch11s03s04.html – 2010-08-17 18:46:37
@Harper:通過這種方式,您可以將緩存過期委託給它所屬的Solr。 – 2010-08-17 18:50:00