Как вставить многозначное поле в solr, используя лилию с морфлинной строкой
Я пытаюсь вставить разделенную запятыми строку в качестве многозначного поля в мою конфигурацию морфлина из структуры на основе строк в HBase.
Может ли кто-нибудь предложить какой-либо лучший способ или опыт, я новичок в этом.
Есть ли способ, которым я могу это сделать.
HBase-Indexer Mapper:
<?xml version="1.0"?>
<indexer table="Document_Test"
mapper="com.ngdata.hbaseindexer.morphline.MorphlineResultToSolrMapper"
unique-key-field="documentId" mapping="row">
<param name="morphlineFile" value="/path/to/morphline.conf" />
</indexer>
Morphline Conf:
{
extractHBaseCells {
mappings : [
{
inputColumn : "CF:DocumentId"
outputField : documentId
type : long
source : value
}
{
inputColumn : "CF:Persons"
outputField : persons
type : string
source : value
}
]
}
// Some command here which can be used, I tried with **java**, But didn't worked and make it a single string
}
Это просто делает одну строку вроде этого:
{
"persons": [
"[Panos Kammenos, King Salman, Nabil Sadek, Ehab Azmy, Hesham Abdelhamid]"
],
"documentId": 38900223,
"_version_": 1535233203724353500
}
ОБНОВЛЕНО
Попробовал этот, и он работал на строках на основе строк или на высокой структуре.
{
extractHBaseCells {
mappings : [
{
inputColumn : "CF:DocumentId"
outputField : documentId
type : long
source : value
}
{
inputColumn : "CF:Persons"
outputField : persons
type : string
source : value
}
]
}
}
{
split{
inputField : persons
outputField : persons_multi
separator : ","
isRegex : false
}
}
1 ответ
Решение
Вы можете использовать команду split следующим образом:
{
extractHBaseCells {
mappings : [
{
inputColumn : "CF:DocumentId"
outputField : documentId
type : long
source : value
}
{
inputColumn : "CF:Persons"
outputField : persons
type : string
source : value
}
]
}
}
{
split{
inputField : persons
outputField : persons_multi
separator : ","
isRegex : false
}
}
Дайте мне знать, если у вас возникнут какие-либо проблемы.