2015-01-16 64 views
0

我正在使用Solr 4.10.2。我已經建立索引文件。在Schema.xml的,我已刪除ID領域,取而代之的是與NGRAM領域並取得NGRAM字段作爲唯一鍵用另一個替換ID會降低Solr的性能嗎?

我有一個問題 - 當我會做搜索查詢Solr。將搜索傷害性能?而且它也會影響D 主機緩存

回答

1

使用NGRAM字段作爲唯一鍵是一個非常糟糕的主意。唯一的關鍵字段不能是「標記化」類型,否則多個單獨的標記包含導致錯誤肯定匹配的關鍵字。您應該只使用字符串或int/long字段類型作爲唯一鍵的類型。

當然,性能也有所影響,因爲NGRAM領域創造了許多標記,而不是一個,但相比於其他問題,如誤報那簡直是微不足道的,重複的文檔。

+0

我沒有使用ngram字段。 ngram只是該字段的名稱,其字段類型是字符串。您正在以錯誤的方式檢查問題。所以,告訴我它會降低性能 – iNikkz

+0

不,使用任何其他字符串字段並不重要。無論uniqueKey字段被調用的性能如何。 – Shalin

+0

我非常抱歉'@ Shalin'。實際上,我的ngram字段不是字符串類型。我已經定義自己的字段類型= 「textSpell」,其中包含2行''&'<過濾器類= 「solr.ShingleFilterFactory」 maxShingleSize = 「3」 minShingleSize = 「2」 outputUnigrams = 「真」/>'。現在,Plz告訴我它是否會降低性能? – iNikkz

1

不,我不認爲這會影響Solr的性能。由於您將自己的字段定義爲uniqueKey,因此它將基於給定密鑰對文檔編制索引。我用我的項目中的一個我們使用documentId作爲uniqueKey的同一批處理。

+0

好的。你確定。您索引了多少數據?多少時間,它需要檢索你搜索的文件? – iNikkz

+0

我已經索引了6K文檔,其中每個文檔包含400個字段。檢索查詢通常取決於您的查詢。如果您搜索所有索引數據,則需要幾毫秒。 – ManojP

+0

我已經索引了1個Lakh文檔,其中每個文檔只有2個字段。當我第一次在索引數據中搜索單詞時,大約需要2秒。下一次,當我搜索相同的查詢時,由於該時間,文檔保存在緩存中需要幾毫秒。這就是爲什麼。 **你有沒有使用任何技術來搜索查詢?** – iNikkz