Solr 在索引时拆分字符串并存储到多个字段中

标签 solr

现在我有一个字段正在以下面的格式建立索引,

“my_field”:”Abc&Deo&Efg”

可以有“n”个由“&”分隔的项目,有没有办法用&拆分此字段并在索引时存储在单独的字段中solr,字段名可以是solr中的值本身。

最佳答案

您必须在更新链中执行此操作。使用 ScriptUpdateProcessor 然后编写一些 Javascript 来执行此操作

<processor class="solr.StatelessScriptUpdateProcessorFactory">
    <str name="script">updateProcessor.js</str>
</processor>

在更新处理器脚本中(在您的conf目录中):

    function processAdd(cmd) {
        doc = cmd.solrDoc;  // org.apache.solr.common.SolrInputDocument
        field= doc.getFieldValue("my_field");

        // tokenize your string here on the & separate then put tokens into new field, which could be a multivalue
        doc.setField("mySplitField", token);
    }

问题是为什么要这样做,因为您可以在索引时简单地对“&”进行标记,然后每个组件都是可搜索的。

这里有更多信息:https://dutchweballiance.nl/techblog/introducing-the-solr-scriptupdateprocessor/

关于Solr 在索引时拆分字符串并存储到多个字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40123808/

相关文章:

solr - 如何使用 pysolr 对 solr 进行原子更新?

mysql - DataImportHandler 未在 solr admin 中索引 mysql 表

Django haystack 不会添加到 Solr 索引。 [使用 whoosh,使用 Solr 失败]

solr - solr 中的 dataDir 参数

windows - Git 源代码控制下的 Solr 配置和设置

Solr停用词问题

performance - Solr 在索引时变慢

solr - 在 hadoop 上运行 solr 索引

solr - 在 Solr 中,如何将 edismax 与过滤器查询一起使用(但没有默认字段)?

java - 具有相同唯一键的重复文档