我有一个简单的字符串“ PART_NUMBER”值作为solr中的一个字段。我想添加一个附加字段,将该值放在URL字段中。为此,我创建了一个新的字段类型,字段和副本字段
"add-field-type": {
"name": "endpoint_url",
"class": "solr.TextField",
"positionIncrementGap": "100",
"analyzer": {
"tokenizer": {
"class": "solr.KeywordTokenizerFactory"
},
"filters": [
{
"class": "solr.PatternReplaceFilterFactory",
"pattern": "([\\s\\S]*)",
"replacement": "http://myurl/$1.jpg"
}
]
}
},
"add-field": {
"name": "URL",
"type": "endpoint_url",
"stored": true,
"indexed": true
},
"add-copy-field":{ "source":"PART_NUMBER", "dest":"URL" }
您可能已经猜到了,我的查询输出类似于
{
"id": "1",
"PART_NUMBER": "ABCD1234",
"URL": "ABCD1234",
"_version_": 1645658574812086272
}
因为endpoint_url字段类型仅修改索引。确实,在进行分析时,我得到了
http://myurl/ABCD1234.jpg
我的问题:有什么方法可以应用标记器或过滤器并将其反馈回字段值?返回结果时,我希望使用此输出:
{
"id": "1",
"PART_NUMBER": "ABCD1234",
"URL": "http://myurl/ABCD1234.jpg",
"_version_": 1645658574812086272
}
在Solr中可以这样做吗?
答案 0 :(得分:0)
解决方案发布在这里: Custom Solr analyzers not being used during indexing
我需要使用更新处理器才能在分析之前更改字段值。该过程可以在这里找到: https://lucene.apache.org/solr/guide/8_1/update-request-processors.html