2012-08-08 172 views
1

我有一個單核[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內返回。

+0

請提供一些更多的信息 - 一個例子查詢和哪些字段類型,應用什麼標記化(任何)? – kpentchev 2012-08-08 12:05:15

+0

@kpentchev我已經添加了關於模式和示例查詢的一些信息。 – 2012-08-08 12:12:33

+0

還應該提一下,我試圖把索引放在ramfs上。不幸的是,它將響應時間提高了2秒! – 2012-08-08 12:17:09

回答

5

我相信我已經找到並解決了我遇到的問題。

原來,我的很多文檔,由於它們都由書目元數據組成,所以在通常的英語停用詞之上包含了一些非常常見的詞彙。這些詞包括'日記'和'訴訟'。此外,由於我的文檔包含作者姓名,通常包括首字母縮寫,其中很多都包含索引單字母術語。如果將這些內容中的任何一個作爲查詢詞彙,響應時間將會增加一個數量級。

我的解決辦法是簡單地使用的StopFilter和LengthFilter篩選出這些常用的術語,比如:

<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> 
<filter class="solr.LengthFilterFactory" min="2" max="100"/> 
+0

你將這些添加到查詢過濾器的權利? – zengr 2013-06-20 17:34:04

+1

其實對於查詢和索引過濾器來說,因爲沒有要索引的東西永遠不會被查詢。雖然我猜測只是將上述內容添加到查詢過濾器中會產生相同的效果。 (我假設問題在於查詢普通的短期條款,而不是針對包含許多類似短期條款的文檔的結構或規模或索引的某些其他特徵引入的任何問題。) – 2013-06-21 09:29:06