如何扩展Apache Solr的ExtractingRequestHandler以从协议缓冲区文件中提取内容?

时间:2015-12-01 11:21:33

标签: solr

我已经设置了SolrCloud的实例。现在,我想索引处于协议缓冲区格式的文件中的内容,并使用stored=true属性将它们存储在Solr中。存储二进制文档很简单。现在我如何指示solr从协议缓冲区文件中提取内容? 我知道我们可以扩展ExtractingRequestHandler来做同样的事情,但我无法在维基页面上找到关于这样做的全面文档:http://wiki.apache.org/solr/ExtractingRequestHandler

1 个答案:

答案 0 :(得分:1)

而不是扩展ExtractingRequestHandler,我会选择SolrJ。通过这种方式,您可以随心所欲,您的客户端将在单独的JVM中运行,它将提取内容(使用您喜欢的库),最后它将连接到Solr。像这样:

// Extract content from PB files
String content = extractContentFromPBFiles();

// The facade towards Solr
SolrClient client = ...

// The Input value object (i.e. a Solr Document that needs to be indexed)
SolrInputDocument doc = new SolrInputDocument();
doc.setField("id", <your id>);
doc.setField("content", content);

// Add
client.add(doc);

// Commit (you may want to avoid this in case of massive inserts)
client.commit();