我有一個單核[1],非複製Solr索引包含約4000萬文件。每個文件有兩個字段,一個存儲,另一個不存在。我搜索未存儲的字段,存儲的字段是我的結果。慢查詢長查詢響應時間
該索引的響應時間大約爲8秒。需要注意的是,我沒有做出我認爲典型的全文查詢。每個查詢包含數十個或術語。我預計這會很慢,但速度並不慢。
我注意到的一點是,Solr只使用其JVM所具有的7GB的幾百MB。它不能保留記憶中的大部分指標。這導致我的問題:有沒有辦法配置solr,使其被迫在內存中維護很多(或至少更多)索引?
[1] Sharding爲我引入了一個問題。相對分數在我的Solr應用中非常重要。碎片本地評分意味着我擁有的碎片越多,分數越不準確。響應
更多信息評論:
下面是我在搜索領域的字段類型定義:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
,這裏是一個示例查詢:
(Carberry J 2008 Toward a Unified Theory of High-Energy Metaphysics Silly String Theory Journal of Psychoceramics 5 11 1 3)
這將需要大約需要10秒才能做出響應,而使用較少ORed項的查詢(例如(Carberry 2008))將在〜100ms內返回。
請提供一些更多的信息 - 一個例子查詢和哪些字段類型,應用什麼標記化(任何)? – kpentchev 2012-08-08 12:05:15
@kpentchev我已經添加了關於模式和示例查詢的一些信息。 – 2012-08-08 12:12:33
還應該提一下,我試圖把索引放在ramfs上。不幸的是,它將響應時間提高了2秒! – 2012-08-08 12:17:09