Con*_*ion 2 multilingual solr dataimporthandler
我有一个MySQL表:
CREATE TABLE documents (
id INT NOT NULL AUTO_INCREMENT,
language_code CHAR(2),
tags CHAR(30),
text TEXT,
PRIMARY KEY (id)
);
Run Code Online (Sandbox Code Playgroud)
我有2个关于Solr DIH的问题:
1)该langauge_code字段表示该字段所使用的语言text.根据语言,我想索引text不同的Solr字段.
# pseudo code
if langauge_code == "en":
index "text" to Solr field "text_en"
elif langauge_code == "fr":
index "text" to Solr field "text_fr"
elif langauge_code == "zh":
index "text" to Solr field "text_zh"
...
Run Code Online (Sandbox Code Playgroud)
DIH可以处理这样的用例吗?如何配置它?
2)该tags字段需要索引到Solr multiValued字段.多个值存储在字符串中,以逗号分隔.例如,如果tags包含字符串"blue, green, yellow",然后我要编制索引的3个值"blue","green","yellow"为Solr的多值字段.
我如何用DIH做到这一点?
谢谢.
首先,您的架构需要允许它具有以下内容:
<dynamicField name="text_*" type="string" indexed="true" stored="true" />
Run Code Online (Sandbox Code Playgroud)
然后在你的DIH配置中这样的东西:
<entity name="document" dataSource="ds1" transformer="script:ftextLang" query="SELECT * FROM documents" />
Run Code Online (Sandbox Code Playgroud)
在数据源下方定义脚本:
<script><![CDATA[
function ftextLang(row){
var name = row.get('language_code');
var value = row.get('text');
row.put('text_'+name, value); return row;
}
]]></script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1269 次 |
| 最近记录: |