现在我有一个字段正在以下面的格式建立索引,
“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/