2015-09-17 143 views
1

我是Solr的新手。我已經將大約14列的SQL Server表編入索引,其中有300萬條記錄存入Solr。索引最多需要15分鐘左右。我存儲所有的字段。所以我不必回到sql server查詢。基本上我使用solr作爲數據庫並直接在其上搜索。沒有唯一的關鍵字,但是我只搜索了1列。 本專欄始終只包含1個單詞。Solr縮短搜索時間

此列上的每個搜索將不會產生超過200條記錄。在響應頭文件中 - 對於每個新的搜索文本 - 我可以將QTime看作150,200,1350 ms有時。我想把它降低到不到50毫秒。

「responseHeader」:{ 「狀態」:0, 「QTIME」:150 },

我可以不用分片只是做一些小的配置變化? 編輯補充: 我正在使用Solr 5.3.0。我不排序或使用方面等我的XML模式是:

<fields>   
    <field name="Postcode"       type="string" indexed="true" stored="true" required="true" />   
    <field name="PostTown"       type="string" indexed="false" stored="true" required="true" />    
    <field name="DependantLocality"     type="string" indexed="false" stored="true" required="false" /> 
    <field name="DoubleDependantLocality"   type="string" indexed="false" stored="true" required="false" /> 
    <field name="ThoroughfareName"     type="string" indexed="false" stored="true" required="false" /> 
    <field name="ThoroughfareDescriptor"   type="string" indexed="false" stored="true" required="false" /> 
    <field name="ApprovedAbbreviation"    type="string" indexed="false" stored="true" required="false" /> 
</fields> 

我已經收錄的郵編,目前我只搜索通Solr的管理網站,如:郵編:WA168GS

謝謝。

+0

信息太少。你的schema.xml如何?你的solrconfig.xml如何?你正在使用哪個版本的Solr?你究竟如何查詢?查詢時你會排序嗎?提交查詢時是否使用其他功能(方面,更像這樣等)? – cheffe

+1

您是否檢查過關於該主題的文檔? https://wiki.apache.org/solr/SolrPerformanceFactors或https://wiki.apache.org/solr/SolrPerformanceProblems – cheffe

+0

快速查詢的外觀如何,慢速查詢的外觀如何?可能您的問題與[深度分頁](http://solr.pl/en/2011/07/18/deep-paging-problem/)有關,可通過[適當的分頁](https:// cwiki。 apache.org/confluence/display/solr/Pagination+of+Results)。 – cheffe

回答

0

solr查詢的性能可能取決於幾個因素。

  1. 您在啓動solr服務器時向JVM(堆)提供了多少內存。現在來了,如何使用這個記憶。 Solr爲您提供三種不同類型的緩存,用於緩存先前的搜索結果。
    • filterCache:存儲由Solr構建的過濾器,以響應添加到查詢中的過濾器。如果您使用fq=category:apparel之類的過濾器參數搜索velvet pants,Solr將爲該類別構建一個過濾器並將其添加到其緩存中。
    • queryResultCache:存儲查詢返回的文檔ID組。
    • documentCache:該緩存包含Lucene Document對象(每個文檔的存儲字段)。

所以,當你犯了一個查詢與term和一些濾波器參數,Solr的內部進行兩次搜索,一個是實際刑期以及每個篩選標準您提供。然後合併結果。如果任何部分已經在緩存中可用,那麼它將直接從那裏使用它。應該配置size,initialSizeautowarmCount參數,以便您獲得快速結果。您可以在這裏找到更多關於solr cache的信息。

  1. 您應該保留openSearcher標記爲falseautoCommit配置。因爲每次發生硬性提交時它都會打開一個新的索引搜索器實例。您應該使用autoSoftCommit配置將新索引加載到搜索器而不是硬提交。

您需要使用這些參數來調整solr以實現快速搜索查詢。

+0

謝謝你們!在Solr有很多東西需要很長的路要走。會讓你更新。 – Mihir