【发布时间】:2019-04-10 07:50:53
【问题描述】:
我正在尝试向项目添加全文搜索功能。我不想存储所有文档的全部内容,所以我决定将 stored="false" 用于“content”字段。此外,还有一个布尔字段来指示文档是否被删除。当我在 Solr 中创建一个新文档时,它工作得很好。但是当我更新 is_deleted 字段时 - “内容”似乎从索引中丢失了,我不能再搜索这个文档了。
我发现 a post 说就地更新时不需要存储字段,但这对我不起作用。
一些细节:
架构:
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="_version_" type="plong" indexed="false" stored="false" docValues="true"/>
<field name="is_deleted" type="boolean" indexed="false" stored="false" docValues="true"/>
<field name="content" type="text_general" indexed="true" stored="false" multiValued="true"/>
使用“/update”处理程序添加测试文档:
{
"id": "doc1",
"is_deleted": false,
"content": "SEARCH ME"
}
更新文档:
{
"id": "doc1",
"is_deleted": {"set": true}
}
使用 Solr v 7.5.0。
Solr In-Place update documentation 没有说明需要为此类更新存储所有字段。
【问题讨论】:
-
您有任何copyField说明吗?如果是这样,他们还必须符合就地更新的要求才能进行。