2013-07-22 72 views
0

我想在來自數據庫的註釋中查找主題標籤。爲此,我使用Solr的RegexTransformer和多值字段。我的問題是,變壓器只傳遞字符串的第一個匹配,而不是所有的匹配。Solr RegexTransformer僅將多維字段的第一個匹配項

boards.xml:<field column="hashtag" sourceColName="comment" regex="(#[^.!\s]+)" /> schema.xml中:<field name="hashtag" type="string" multiValued="true" />

所以例如「這是一個#良好#評論」作爲輸入應保存#好#評論在多值字段,但只#良好到達。

我知道我不是最好的正則表達式,但根據http://www.regexplanet.com它應該按預期工作。

回答

0

好吧,所以我發現,這種行爲是有目的的。它總是隻返回一場比賽。我解決了這個問題,通過使用ScriptTransformer

function CommentPieces(row){ 
     var reg = new RegExp(/(#[^.!\s]+)/g); 
     var arr = new java.util.ArrayList(); 
     while((result = reg.exec(row.get('comment'))) !== null) { 
      if(!arr.contains(result[0])){ 
       arr.add(result[0]); 
      } 
     } 
     row.put('hashtag', arr); 
     return row; 
    } 
相關問題