簡體   English   中英

在動態字段Solr中使用docValues

[英]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沒有引發任何錯誤,並且數據已正確索引。

此字段的可用性-

  1. 此字段上沒有排序/構面。
  2. 僅使用顯示值。

我想使用solrJ更快地獲取數據。 我找不到有關stored=truemultivalued=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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM