我正在寻找一种能够识别字符串(公司名称)的搜索解决方案,并在Solr中将这些字符串用于搜索和构面。
我是Nutch和Solr的新手所以我想知道这是在Nutch还是在Solr中做得最好。一种解决方案是在Nutch中生成一个Parser,用于标识有问题的字符串,然后索引公司名称,稍后映射到Solr值。我不确定如何,但我想这也可以在Solr中直接从文本中完成?
在Nutch或Solr中执行此字符串标识是否有意义,Solr或Nutch中是否有某些功能可以帮助我?
感谢。
答案 0 :(得分:3)
您可以将NER库(请参阅opennlp,lingpipe,gate)嵌入到自定义解析器中,生成新字段并相应地创建索引过滤器。这并不是特别困难,与在SOLR方面这样做相比,优势在于您可以从mapreduce的可扩展性中获益(NLP任务通常是CPU需要的)。 有关如何在mapreduce中嵌入GATE的示例,请参阅Behemoth
答案 1 :(得分:1)
Nutch通过Solr HTTP API将已爬网数据索引到Solr,从而与Solr合作。您可以通过调用solrindex命令来触发索引。有关如何设置此内容的详细信息,请参阅this page。
为了能够提取公司名称,我会在Solr中添加必要的代码。我会使用UpdateRequestProcessor。它允许在索引过程中添加额外的步骤,以在索引的文档中添加额外的字段。您的UpdateRequestProcessor将用于检查由Nutch发送给Solr的文档,从文本中提取公司名称并将其添加为文档中的新字段。 Solr会将文档和您添加的字段编入索引。