我已經在solr中編寫了一個自定義請求處理程序來滿足我的業務需求。處理程序涉及從SolrIndexSearchers獲取兩個不同的數據。我想從兩個SolrIndexSearchers中返回的文檔列表合併爲一個。在SOLR中操作DocList
我試着迭代一個,然後將doc添加到另一個doc中,但是我所能得到的只是一個「Unsupported Operation」異常。無論如何要合併兩個文檔列表?
[編輯1]:代碼段重寫handleRequestBody方法
SolrCore core = new SolrCore("Desired Directory 1", schema);
reader = IndexReader.open("Desired Directory 1");
searcher = new SolrIndexSearcher(core, schema, getName(), reader, false);
Sort lsort = null;
FilteredQuery filter = null;
DocList results1 = searcher.getDocList(query, filter, lsort, 0, 10);
reader.close();
searcher.close();
core.close();
SolrCore core = new SolrCore("Desired Directory 2", schema);
reader = IndexReader.open("Desired Directory 2");
searcher = new SolrIndexSearcher(core, schema, getName(), reader, false);
Sort lsort = null;
FilteredQuery filter = null;
DocList results2 = searcher.getDocList(query, filter, lsort, 0, 10);
reader.close();
searcher.close();
core.close();
rsp.add("response",results1);
rsp.add("response",results2);
裏面現在,我有兩個DocLists結果1和結果2,我該如何合併到一起?
[編輯2]:問題不是異常/堆棧跟蹤。當我添加兩個響應時,當它是單個機器搜索時,我會在兩個響應集中得到結果。當它是分佈式搜索時,我只能得到機器1的響應1和機器2的響應1之間的分配。在我的理解中,只有當我將響應合併到一個集合時,我才能夠得到正確的分配。希望我能理解嗎?
你可以把你正在使用的代碼添加到你的問題嗎? – javanna 2012-03-29 11:31:37
完成@Javanna那麼你需要什麼? – Greenhorn 2012-03-29 11:40:38
不確定,你可以請添加你的stacktrace嗎? – javanna 2012-03-29 11:55:26