我在应用程序中实现了Complete Suggester,下面是我的要求:
我只想在两种类型的字段上使用补全建议程序,只是我的索引是这样的(由于其他一些要求,这些字段在到来时不会被索引,而是会将数据展平以匹配此Map):
flatData": {
"type": "nested",
"properties": {
"key": {
"type": "keyword"
},
"type": {
"type": "keyword"
},
"key_type": {
"type": "keyword"
},
"value_string": {
"type": "text",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
因此,基本上,它在以下格式下为数据编制索引:
{
"key": "idBook",
"type": long,
"key_type": "idBook.long",
"value_string": 67d25bce-39b5-4069-b137-0698286f50a4
},
{
"key": "bookName",
"type": "string",
"key_type": "bookName.string",
"value_string": "A Song Of Ice And Fire"
},
{
"key": "numPages",
"type": "string",
"key_type": "numPages.string",
"value_string": "8000"
}
在我的例子中,我只想在键的值为BookName和AuthorName时添加补全提示符。例如,我想要做的是添加一个_ALL字段,在其中复制这些键的值,以获得如下所示:
"value_string": {
"type": "text",
"copy_to": "my_all"
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
"my_all": {
"type": "completion"
}
例如,有没有办法仅当键的值为bookName时才将_复制到My_All字段中?
1条答案
按热度按时间i2byvkas1#
TLDR;
不支持,
copy_to
不支持条件。但这并不意味着你不能实现你想做的事情。您应该关注支持条件的ingestion pipeline
解决方案
你从这份文件开始
创建此管道
您最终得到了这份文档
只需相应地创建Map,将字段
my_all
设置为类型完成,您就应该都设置好了。