Java 索尔。更新文档多值字段(无dup值),而无需提交该字段
抱歉,文字太长,有点难以解释: 我们正在使用Solr索引一些用户信息,如用户名、电子邮件(以及其他信息) 我还尝试使用facets进行搜索,例如,我为用户添加了一个名为“organizations”的多值字段,我将在其中存储用户工作的组织的名称 因此,我可以将该字段用于facetted搜索,并能够根据该用户工作的组织筛选用户搜索查询结果 现在,我遇到的问题是,我的代码执行以下操作: 1) 将用户文档添加到Solr 2) 为用户分配组织成员资格(角色)时,更新用户文档以设置“组织”字段 现在,我对步骤2有以下问题: 如果我只是在用户文档上添加一个addField(“organizations”,“BigCorp”),它将添加该值,而不管组织是否已经有该值(“BigCorp”),但我希望每个组织名称只显示一次 因此,我发现获得该行为的唯一方法是查询用户文档,获取“organization”的值,并且仅在该值不在其中时添加新值-如果!userDoc.getValues(“organiations”)。包含(值){…将值添加到文档并保存它…}- 现在这很好,但前提是我一直都在提交(至少在步骤1和步骤2之间),因为除非文档查询已经提交,否则它将无法工作。显然,从理论上讲,最好不要一直提交性能方面的内容,这是不现实的,因为我是成批处理这些插入内容的 所以我想主要的问题是:Java 索尔。更新文档多值字段(无dup值),而无需提交该字段,java,solr,lucene,Java,Solr,Lucene,抱歉,文字太长,有点难以解释: 我们正在使用Solr索引一些用户信息,如用户名、电子邮件(以及其他信息) 我还尝试使用facets进行搜索,例如,我为用户添加了一个名为“organizations”的多值字段,我将在其中存储用户工作的组织的名称 因此,我可以将该字段用于facetted搜索,并能够根据该用户工作的组织筛选用户搜索查询结果 现在,我遇到的问题是,我的代码执行以下操作: 1) 将用户文档添加到Solr 2) 为用户分配组织成员资格(角色)时,更新用户文档以设置“组织”字段 现在,我对
- 有没有一种方法可以在不允许重复的情况下更新多值字段,而不需要查询文档来手动防止重复
- 也许有更好的办法
- 对于镶嵌面字段中的多个重复值,镶嵌面字段中的值只计算一次。因此,即使添加多个相同的值,也会在facet count条目中作为单个值反映出来。我们已经对此进行了测试。你也可以证实
- 另外,在重新索引文档时,为什么需要检查现有文档中的内容。我认为您将拥有唯一的组织列表,当提交给Solr时,该文档将被删除并插入李>