如我所知,我们可以控制突出显示的片段的大小。
但是我想控制特定字段结果的大小。
例如)
我可以使用fragment_size
,number_of_fragments
来控制突出显示的大小。
highlight: {
"CONTEXT": [
"I am leaving today.I want to be a part of it New York, New York These <b>vagabond</b> shoes They are"
]
}
但是我想要这样的结果;
fields: {
"CONTEXT": [
"I am leaving today.I want to be a part of it New York, New York These vagabond shoes They are longing to stray Right through the very heart of it New York, New York ..."
],
"TITLE": [
"new york new york"
]
},
因为,有时此上下文字段太长,无法显示结果网页。
因此,我想控制大小CONTEXT字段的结果。
最佳答案
您可以执行以下操作,但我建议您是否可以在客户端执行此操作。
{
"settings": {
"analysis": {
"filter": {
"truncate_filter": {
"type": "truncate",
"length": 20
}
},
"analyzer": {
"my_truncate_analyzer": {
"type": "custom",
"tokenizer": "keyword",
"filter": [
"truncate_filter"
]
}
}
}
},
"mappings": {
"test": {
"properties": {
"context": {
"type": "string",
"fields": {
"truncated": {
"type": "string",
"analyzer": "my_truncate_analyzer"
}
}
}
}
}
}
}
在查询中,您需要添加
fielddata_fields
才能看到被截断的字段:{
"query": {
...
},
"fielddata_fields": ["context.truncated"]
}