我試圖在我的SOLR實例中優化突出顯示,因爲這似乎使查詢速度減慢了2個數量級。我有一個標記化字段索引和存儲的,定義如下:優化SOLR熒光筆
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="\+" replacement="%2B"/>
<tokenizer class="solr.UAX29URLEmailTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt" enablePositionIncrements="true" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="\+" replacement="%2B"/>
<tokenizer class="solr.UAX29URLEmailTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
期限載體等時,也會生成:
<field name="Events" type="text_general" multiValued="true" stored="true" indexed="true" termVectors="true" termPositions="true" termOffsets="true"/>
對於我使用默認配置SOLR高亮組件。我嘗試的查詢使用FastVectorHighlighter,但仍需要〜1500ms,對於每個文檔中存儲10-20個值的〜1000個文檔非常長。下面是該查詢:
q=Events:http\://mydomain.com/resource/term/906&fq=(Document_Code:[*+TO+*])&hl.requireFieldMatch=true&facet=true&hl.simple.pre=<b>&hl.fl=*&hl=true&rows=10&version=2&fl=uri,Document_Type,Document_Title,Modification_Date,Study&hl.snippets=1&hl.useFastVectorHighlighter=true
我感到好奇的是,在Solr管理統計單查詢生成9146個請求HtmlFormatter和GapFragmenter。想知道爲什麼會發生這種情況,以及如何提高熒光筆的性能?
我使用在Tomcat 7.0.28上運行的Solr 3.6 – kpentchev 2012-08-02 09:22:42
在未啓用termVectors的類似字段上運行相同的查詢,顯示響應時間沒有顯着差異。 – kpentchev 2012-08-02 10:50:01