在SOLR中,stored=true
和indexed=true
之間的區別是什麼。我知道stored=true
存儲字段的實際值而不修改它,並且indexed=true
存儲用於計算目的的字段的修改值。我想知道,直到它影響到表演的程度。與stored =false
和indexed=true
相比,stored=true
和indexed=true
的組合是否會降低持久性和檢索的性能?SOLR Indexed = true和stored = true之間的區別
3
A
回答
11
indexed = true
是必要的,如果你想搜索「over」該字段。如果一個字段沒有編入索引,那麼您無法從該字段找到值/字詞。 如果indexed = true
的分析器鏈運行在該字段的數據上。如果您需要從索引讀取字段的值/內容,則需要stored = true
。例如,如果您喜歡使用突出顯示功能,或者如果您想將solr用作數據庫,而不僅僅將其用作搜索索引。如果stored = true
表示:只需存儲原始內容並輸出原始內容(如果需要)。
我想知道,直到它影響性能的級別。
內容(存儲)和索引被放置在不同的文件中。所以solr不需要遍歷搜索的內容文件,只是因爲存儲是真實的。
需要一些時間來存儲數據,特別是如果它很大。在檢索方面,這取決於你放入'fl'的內容。如果您沒有使用'fl'檢索字段,則不需要花費閱讀它。
但是,如果該字段已存儲,則solr能夠在結果列表中打印內容(取決於您的solr配置)。這意味着,您的結果列表可能會更大(取決於您的內容/字段大小)。如果solr必須發送存儲字段的內容,那麼構建列表並將列表傳輸到客戶端可能會更慢。
執行搜索的時間將是相同的。但是,請求所需的整個時間是以下幾項內容的添加:搜索,構建結果列表,將列表傳輸到客戶端等。因此,將所有內容存儲到結果列表中可能會減慢solr請求,但不會影響查詢時間。
相關問題
- 1. System.Timers.Timer Enabled = true和.Start()之間的區別Enabled = true和.Start()之間的區別
- 2. YES/TRUE之間的區別?
- 3. AutoPostBack = True和AutoPostBack = False之間的區別?
- 4. 「!= true」和「== false」之間的區別?
- 5. 「!= true」和「= false」之間的區別
- 6. SomeValue之間的區別{get;} = true; vs SomeValue => true;在屬性
- 7. Solr Add和Solr Commit之間的區別
- 8. 在php中,if(true)/ else(false)和if(!true)之間有什麼區別?
- 9. <compilation debug =「true」>和.csproj文件設置之間的區別?
- 10. jquery:stop(true)和clearQueue()之間的區別是什麼
- 11. $ _和[參數(ValueFromPipeline = $ true)之間的奇怪區別]
- 12. while(true)和for(;;)之間的實際區別是什麼?
- 13. GC.GetTotalMemory(false)和GC.GetTotalMemory(true)之間的區別是什麼
- 14. 傑克遜註解:JsonIgnoreProperties(ignoreUnknown = true)和JsonInclude(Include.NON_EMPTY)之間的區別
- 15. PredicateBuilder <True>和PredicateBuilder <False>之間的區別?
- 16. [DataContractAttribute(IsReference = true)]和[DataContract]之間的區別是什麼?
- 17. setVisible(true),repaint()和validate()之間有什麼區別?
- 18. to.equal(true)和to.be.true之間有什麼區別?
- 19. keras圖層Masking()和Embedding(mask_zero = True)之間是否有區別?
- 20. control.hide/show和control.visible之間是否有區別:= false/true?
- 21. 'while(true)`vs`while(\ true)`有什麼區別?
- 22. SOLR中Occur.SHOULD和Occur.MUST之間的區別
- 23. objective-c中的YES/NO,TRUE/FALSE和true/false是否有區別?
- 24. attr('disabled',true)與unbind('click')之間的區別
- 25. Spring Data Neo4J @Indexed(unique = true)not working
- 26. 回覆短信息:「compose_mode」= true與false之間有什麼區別?
- 27. 「-Dmaven.test.skip.exec」和「-Dmaven.test.skip = true」有什麼區別?
- 28. true是什麼區別?和布爾值
- 29. FileStream.Flush()和FileStream.Flush(True)有什麼區別?
- 30. 簡單的ajax和:remote => true之間的區別在Ruby on Rails中
你能否提出其他方法來提高性能?在我的情況下,持久性和檢索速度變慢,並且我們配置了1個分片和3個副本,該索引用於分頁目的(如排序,分組等)。我們正在考慮增加OpenSearchers的數量,但我們讀到這會在RAM上產生開銷。我們還在批量作業和實時操作中進行了大量的強化操作。我們考慮使用軟提交,但我們需要「完成實時」響應,而不是「近實時」響應。 – 2015-03-04 08:41:04
閱讀此內容,它看起來像硬性提交是性能問題的原因。一種選擇是在使用'optimize = false'選項導入後提交數據。但每次更新都會使您的索引碎片化,因此您必須每隔一天/每天以特定間隔運行一次優化。你可以玩''選項。有一點是,主要是導入/提交導致新的搜索處理程序。在這種情況下(部分)緩存丟失=性能不佳。如果您可以從德語翻譯,請閱讀http://php-solr-lucene.blogspot.de/2012/09/relatime-suche-vs-performance.html –
2015-03-04 16:03:22
優化實際上設置爲默認值,即「10」。如果我們增加碎片的數量呢?不會對錶演產生影響嗎? – 2015-03-05 06:27:13