如何在 Solr 中拦截文档

How To intercept Document in Solr

我想通过在每个标记前添加一些值来操作文档并更改字段的标记值。我正在通过 DIH 进行批量更新,并通过 SOLRJ 发布文档。我的复制因子为 2,因此复制也应该有效。我要添加的值作为单独的字段存在于文档中。我很想知道在索引之前我可以截取文档的位置,以便我可以对其进行操作。我能想到的选项之一是覆盖 DirectUpdateHandler2。这是正确的地方吗?

我可以通过外部处理文档并将其传递给 SOLR 来完成,但我想在 SOLR 内部完成。

文档字段是:

  1. 城市:孟买
  2. 餐厅名称:Talk About
  3. 关键词:咖啡、中餐、南印度、酒吧

我想将关键字索引为

  1. mumbai_cofee
  2. mumbai_Chines
  3. mumbai_South 印度人
  4. mumbai_Bar

正确的位置是 Update Request Processor,您确保将其插入 sorlconfig.xml 到您正在使用的所有更新处理程序(包括 DIH),并且单个 URP 将涵盖所有更新。

在 URP 的 java 代码中,您可以轻松获取一个字段的值,然后将其添加到另一个字段中的所有其他值等。这发生在文档被索引之前。