我想使用solr搜索文章
我有3个表:
-
组(id,组名)
-
ArticleBase(id,groupId,其他一些字段)
-
文章(id,articleBaseId,title,date,...)
在solr schema.xml文件中我只定义与ArticleBase表混合的所有文章字段(在solr上使用一个索引),如下所示:(id,articleBaseId,groupId,...)
problem :管理员想要更改组(ArticleBase),因此我必须更新(或替换)solr中的所有索引文章 . 对 ?
我只能在solr索引中更新groupId吗?
有解决方案吗?
Note :文章表包含超过2亿篇文章,我只使用solr作为索引(不存储除文章ID之外的任何字段数据)
4 回答
有关Solr 4.0中的"Partial Documents Update"功能,请参阅this document
Solr 4.0现已成为最终版并且已投入 生产环境 .
此功能可以更新字段,甚至可以将值添加到multiValued字段 .
毛里西奥在2010年的回答是正确的,但这就是今天的情况 .
SolrPHP不提供更新Solr中特定字段的任何方法 .
但是,您可以在PHP中进行Curl调用以更新特定字段:
我使用此代码在JSON中更新,您也可以使用XML提供数据 .
我的解决方案如下:
Solr does not support updating individual fields但是,有一个JIRA issue about this(截至本文撰写时差不多3岁) .
在实施之前,您必须更新整个文档 .
UPDATE :从Solr 4开始实现,here's the documentation .