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