在Solr中,是否可以根据特定字段值和查找在索引期间为文档添加值?

时间:2013-07-29 12:23:35

标签: solr indexing

给定一个唯一值的文本文件,是否有可能使用要编制索引的文档字段并在文本文件中查找的分析器配置,如果找到,则将值添加到另一个字段?

场景:正在索引具有唯一ID的产品,如果在special.txt中找到产品ID,则字段“special”设置为true。

这是用于从手动维护的外部数据源向索引添加临时信息。

2 个答案:

答案 0 :(得分:1)

不。但你可以尝试选择

  1. 创建一个新的过滤器/分析器,并将其与包含source作为产品ID的copyfield一起使用。加载文件,如果找到匹配项,则在copyfield dest。
  2. 中添加special作为标记
  3. 使用带有id = special映射的同义词文本,以便匹配时找到的字段匹配为内容。
  4. 如果使用DIH检查ScriptTransformer,则可以检查值并添加新字段

答案 1 :(得分:0)

您可以在dataconfig中使用变压器

<dataConfig>
    <script><![CDATA[
            function checkProductID(row)    {
                if(row.get('ProducID') !== NULL)
                {
                    row.put('special', 1);
                }
                return row;
            }
    ]]></script>
    <document>
            <entity name="e" pk="id" transformer="checkProductID">
            ....
            </entity>
    </document>
</dataConfig>

新字段(特殊)必须位于schema.xml