2013-04-29 67 views
5

我想執行solr查詢並只獲取我定義的uniquKey。
這些文件非常大,因此定義fl ='my_key'速度不夠快 - 所有匹配的文檔仍然被掃描,並且查詢可能需要幾個小時(即使搜索本身很快 - numFound需要幾秒鐘才能返回)。
我應該提到所有的數據都存儲了,創建一個新的索引不是一個選項。solr查詢 - 無需掃描文件即可獲得結果

我想到的一個想法是獲取結果的docIds並將它們映射到代碼中的my_key。
我用fl = [docid],認爲它不需要掃描來獲取這個信息,但是它仍然需要很長時間才能返回。

有沒有更好的方式來獲得docIds?
或者某種方式來去除某些字段而不重新索引?
或者通過一種簡單的方式來獲得結果而不掃描所有的字段?

感謝,

Dafna先生

+0

我遇到過非常類似的問題!找不到一個方法來釘它。我希望有人對此有更好的體驗... – Yonatan 2013-04-29 19:17:08

+0

爲什麼搜索速度慢?它的索引尺寸巨大?和查詢多個字段的查詢? – Jayendra 2013-07-03 11:27:08

回答

0

抱歉,唯一的辦法就是打破你巨大的文檔不止一個。我不明白如何才能匹配您指定的字段並讓文檔獨立。這不是Lucene的工作原理。

可以製作一份文檔,該文檔僅使用需要查詢的索引字段來簡化作業,或基於所需的查詢打破文檔。或者簡單地添加其他文檔以及這些新查詢所需的結構。隨你便。