0

我正在为客户构建一个交互式搜索服务,我们需要的部分内容是能够向文档添加“标签”。这些标签既是预先存在的,也是自定义的。该架构已设置为支持这一点,但我在更新结果集时遇到了 Solarium PHP 的问题。

例如,如果用户在我们的数据库中搜索“溢出”,并返回 1-1000+ 个结果,他们需要能够使用任意数量的标签来标记整个结果集。

因此,我从 execute() 获取结果集,目前无法更改返回的文档——例外是“无法更改只读文档”。

有人有解决方法吗?

4

1 回答 1

1

对于可更新的文档,您应该使用此类:Solarium\QueryType\Update\Query\Document

Solarium 使用此文档类型作为选择查询的默认类型,原因有两个:

在大多数情况下,不需要更新功能,因此不鼓励将 Solr 用作 DB 只是开销,就像在读取 - 更改 - 保存时一样。几乎所有模式都有仅索引字段。没有办法读取那里的字段的值,所以重新保存文档时这些数据会丢失!通常应根据您的原始数据(即数据库)进行更新。如果您确实确定要更新 Solr 数据,则可以将读写文档类设置为选择查询的文档类型,更改文档并在更新查询中使用它们。

http://solarium.readthedocs.org/en/stable/documents/

于 2016-04-26T08:43:54.930 回答