2010-08-12 55 views
1

我有根據pageIds(UniqueKey)索引的Lucene文件。一個文檔可以有多個頁面。現在,一旦用戶執行一些搜索,它會給我們提供符合搜索條件的頁面如何在Solrnet/Solr(Lucene)中實現分組?

我使用Lucene.Net 2.9.2

我們有2個問題...

1的文件大小爲800GB左右,它擁有130萬行(頁)所以搜索時間真的很慢(所有查詢花費的時間超過了一分鐘)(我們只需要一次返回有限的行)

爲了克服性能問題,我轉移到SOLR解決了性能問題(這很奇怪,因爲我沒有使用SOLR提供的任何額外的功能,比如分片等 - 所以Lucene.NET 2.9.2並不等同於性能比較器紅色到相同版本的JAVA ??)但現在我有另一個問題...

2-單個'lucene文檔'是一頁,但我想顯示結果''真實文檔'分組。我應該返回多少結果應該基於「真實文檔」而不是「頁面」進行配置(因爲我想向用戶展示這些內容)。

因此,我們可以說我想要20個'真實文檔'以及它們中與搜索條件相匹配的所有頁面(如果一個文檔有100頁而另一個文檔只有1個,則無關緊要)。

從我可以從SOLR論壇得到的是,它可以通過SOLR-236補丁(字段崩潰)來實現,但是我還沒有能夠正確地將補丁應用於trunk(提供很多錯誤)。

這對我來說真的很重要,我沒有太多時間,所以有人可以給我發送SOLR 1.4.1二進制文件,如果有任何其他方式,請使用此補丁或引導我。

我真的很感激它。謝謝!!

回答

0

如果您遇到了崩潰補丁問題,那麼Solr問題跟蹤器就是要報告它們的渠道。我可以看到other people are currently having some issues with it,所以我建議參與其發展。這就是說:我建議如果你的應用程序需要搜索'真實文檔',那麼圍繞這些'真實文檔'建立你的索引,而不是他們各自的頁面。

+0

@ Mauricio Scheffer:實際上這是我們的要求,我們需要顯示查詢匹配的頁碼。 – 2010-08-12 15:03:54

0

如果你唯一的要求是顯示頁碼,我會建議玩熒光筆或做一些定製開發。您可以將每個頁面的開頭和結尾的單詞編號存儲在自定義結構中,並且知道整個文檔中匹配的單詞位置,您可以知道它出現的頁面。如果文件非常大,您將獲得良好的性能改進。