(还是新手;更多问题)
我正在通过HTTP GET调用对一些SOLR 4记录执行原子更新。在我修复了网址的一些问题后,这项工作正常。
但我的原始问题仍然存在:我更新文档后,我的搜索查询不再找到我更新的文档。
我是否需要重新索引更新的文档?原子更新会导致文档脱离索引吗?
例如: 我可以用这个搜索:
http://solrfarm.gateway.cco:8983/solr/records/select/?q=firstName:(tomas) recordType:(myrectype)&rows=100
我得到的XML看起来像:
<doc>
<str name="id">CollName-7276748</str>
<str name="system">OHM Liens</str>
<long name="_version_">1464208859225653248</long>
<bool name="optout">false</bool>
</doc>
我想将optout值更改为“true”,并且会发生如下所示的网址:
http://prodsolr01.cco:8983/solr/records/update?stream.body=%3Cadd%3E%3Cdoc%3E%3Cfield%20name=%22id%22%3ECollName-7276748%3C/field%3E%3Cfield%20name=%22optout%22%20update=%22set%22%20%3Etrue%3C/field%3E%3C/doc%3E%3C/add%3E&commit=true
解码并格式化:
stream.body=
<add>
<doc>
<field name="id">CollName-7276748</field>
<field name="optout" update="set" >true</field>
</doc>
</add>
&commit=true
但是,现在当我运行原始查询时,我的记录不会被返回。 如果我明确搜索记录,我会得到记录:
http://solrfarm.gateway.cco:8983/solr/records/select/?q=id:(%22CollName-7276748%22)%20&rows=100
所以我很困惑为什么我的查询不再找到更新的记录。我是否需要将所有原始字段传递给我的更新命令(即最初编入索引的“firstName”和“lastName”字段)?
仅仅执行更新不足够吗?
同样,我是一个新手,我可能没有“得到”一些基本的东西,所以所有的帮助都表示赞赏。