我正在为一个客户构建一个交互式搜索服务,我们需要的一部分是向文档添加“标签”的能力。这些标签既是预先存在的,也是自定义的。模式已经被设置为支持这一点,但是我在更新结果集时遇到了Solarium的问题。
例如,如果用户在我们的数据库中搜索"Overflow“,并返回1-1000+个结果,他们需要能够用任意数量的标签来标记整个结果集。
因此,我从execute()中获取结果集,但目前无法更改返回的文档--例外情况是"A readonly document from be unable“。
有人有解决这个问题的办法吗?
发布于 2016-04-26 16:43:55
对于一个可更新的文档,你应该使用这个类:Solarium\QueryType\Update\Query\Document
出于以下两个原因,
Solarium将此文档类型用作select查询的默认类型:
在大多数情况下,不需要更新功能,因此不鼓励使用Solr作为DB,就像读取-更改-保存一样,这只会带来额外的开销。几乎所有模式都有仅限索引的字段。无法读取这些字段的值,因此重新保存单据时会丢失这些数据!更新通常应该基于您的原始数据(即数据库)。如果您确实想要更新Solr数据,那么可以将可读写的文档类设置为select查询的文档类型,更改文档并在更新查询中使用它们。
http://solarium.readthedocs.org/en/stable/documents/
https://stackoverflow.com/questions/36844682
复制相似问题