2015-04-17 36 views
0

我想通過爲每個標記添加一些值來操作doc並更改字段的標記值。我正在通過DIH進行批量更新,並通過SOLRJ發佈文檔。我有複製因子2,所以複製也應該工作。我想要預先設定的值在文檔中作爲單獨的字段存在。我有興趣知道我可以在索引之前截取文檔的位置,以便我可以操縱它。我可以想到覆蓋DirectUpdateHandler2的選項之一。這是正確的地方嗎?如何攔截Solr中的文檔

我可以通過外部處理文件並將它傳遞給SOLR來完成,但我想在SOLR內部完成。

文檔領域是:

  1. 城市:孟買
  2. RestaurantName:談談
  3. 關鍵詞:COFEE,。中國,印度南部,酒吧

我想索引關鍵字作爲

  1. mumbai_cofee
  2. mumbai_Chines
  3. mumbai_South印度
  4. mumbai_Bar
+0

你有模式,你想申請這個。我會建議添加「PatternReplaceFilterFactory」,來解決問題。 –

+0

@AbhijitBashetti - 這將無法正常工作,因爲您無法從Solr字段分析中的其他字段獲取數據。 – frances

+0

JDBC驅動程序可能是DIH最受歡迎的''。如果您使用的是,那麼您可以在嵌入式SQL查詢中完成此操作。 如果是這樣,你_could_使用'CONCAT(RestaurantName, 「_」,市),餐廳,CONCAT(關鍵字, 「_」,市)如您Solr的數據導入配置中您的SQL查詢keyword'。 – frances

回答

0

在正確的地方是Update Request Processor,你要確保你插在sorlconfig.xml到您正在使用(包括DIH)所有UDPATE處理程序,以及單個URP將覆蓋所有更新。

在URP Java代碼,你可以很容易地得到一個字段的值,然後將其前置於所有其他人在另一個領域等,這發生在文檔被索引之前。

+0

我還沒有看到API,但看起來像個好地方。我必須擴展這個(URP)課程,對吧? –

+0

是的,例如在Solr測試或在線看,有很多 – Persimmonium