[英]Using docValues with dynamic field solr
我有一個solr Field-
<dynamicField name="storeSKUColor_*" type="string" multiValued="true" indexed="false" stored="true" />
問題是,使用solrJ提取數據時,該字段花費太多時間。
我想到了使此字段為stored="false" docValues="true"
。
Solr沒有引發任何錯誤,並且數據已正確索引。
此字段的可用性-
我想使用solrJ更快地獲取數據。 我找不到有關stored=true
或multivalued=true
性能方面的幫助的任何適當文檔。
我知道solrJ對stored=true
字段使用延遲加載。
任何人都可以對此進行指導。
multiValued與性能無關,而是關於允許一個字段在單個文檔中具有多個值。 如果除了存儲字段外您不需要做任何事情-並且返回的所有字段都與docValues="true"
兼容-請使用docValues :
在查詢僅返回docValues字段的情況下,性能可能會提高,因為返回存儲的字段需要磁盤讀取和解壓縮,而在fl列表中返回docValues字段僅需要內存訪問。
如果不是,請docValues="false" indexed="false" stored="true"
使用docValues="false" indexed="false" stored="true"
,因為這應該是檢索該字段值的最快方法(但您可以根據自己的用例進行基准測試)。
請注意,在查詢時將DocValues與“常規”存儲字段一起返回會對性能產生影響,因為DocValues是面向列的,因此存儲字段可能不會如此,因此可能會為每個返回的文檔收取額外的費用。
避免檢索不使用的字段-可以使用solrQuery.setParam('fl', '...')
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.