2016-02-26 27 views
0

我找不到答案。我發現以前的類似問題沒有答案。我想使用Spring數據解析器進行查詢。但@Query不足以滿足我的需求。據我所知,無論你給這裏成爲solr的「選擇」處理程序的參數q通過Criteria API添加原始查詢參數

在我的情況下,我需要添加更多的參數,例如sfield進行空間搜索。如果@Query不會削減它,我準備通過自動裝配SolrTemplate編寫自定義存儲庫實現,但是然後Criteria API似乎不允許我添加原始查詢參數。

任何幫助/積分將不勝感激。

+0

擴展SolrTemplate或QueryParser的每一個可能的機會都是封閉的,因爲大多數這些點都是最終的(在我看來,這是一個糟糕的設計,像數據solr,你不能總是實現每個功能)。我想只能直接使用SolrServer和SolrQuery進行編碼,並自己處理所有分頁。 –

回答

0

我通過創建一個QueryParser裝飾器來解決它,它將所需的參數添加到解析的solr查詢中。 QueryParser已使用solrTemplate.registerQueryParser()註冊。

但是請注意,我必須做一個非常討厭的黑客才能得到這個工作,因爲發送到solrTemplate.queryForPage的所有查詢都被QueryBase中的靜態包保護的內部類包裝。所以我上面的註冊碼必須在一個包中org.springframework.data.solr.core