hive2solr multivalue功能实现
@Overridepublic void write(Writable w) throws IOException {
MapWritable map = (MapWritable ) w;
SolrInputDocument doc = new SolrInputDocument();
for (final Map.Entry entry : map.entrySet()) {
String key = entry.getKey().toString();
String value = entry.getValue().toString();
String[] sl = value.split( "\\s+");//即把hive输入的数据通过空格分隔,切成数组(hive的sql只要concact即可)
List valuesl = java.util.Arrays.asList(sl);
log.info("add entry value lists:" + valuesl);
for(String vl :valuesl){
doc.addField(key,vl); //改为调用addFiled的方法,防止覆盖
}
}
table.save(doc);
}
页:
[1]