突出显示 Elasticsearch 分隔文本
Highlighting Elasticsearch separates text
我使用 Elasticsearch 5.4 构建了自动完成搜索并突出显示了匹配项。
这是我的搜索查询:
GET statements/_search
{
"_source": ["uid","textversions.content"],
"highlight": {
"fields": {
"textversions.content": {}
}
},
"query": {
"match": {
"textversions.content": {
"query": "Informatik",
"fuzziness": "AUTO"
}
}
}
}
现在,大部分结果都正确突出显示了。这是一个例子:
{
"_index": "statements",
"_type": "statement",
"_id": "118",
"_score": 15.151196,
"_source": {
"uid": 118,
"textversions": [
{
"content": "die Nachfrage nach Informatikern auch groß ist"
}
]
},
"highlight": {
"textversions.content": [
"die Nachfrage nach <em>Informatikern</em> auch groß ist"
]
}
}
但我有一些结果,其中我的 textversions.content 不完全在突出显示的版本中:
{
"_index": "statements",
"_type": "statement",
"_id": "252",
"_score": 15.809544,
"_source": {
"uid": 252,
"textversions": [
{
"content": "es im Informatikstudium darum geht, sich mit Themen, die für einen Informatiker im späteren Leben absolut notwendig sind, auseinanderzusetzen und nicht mit anderen Fächern"
}
]
},
"highlight": {
"textversions.content": [
"es im <em>Informatikstudium</em> darum geht, sich mit Themen, die für einen <em>Informatiker</em> im späteren Leben"
]
}
}
or 被分成两个单独的句子:
{
"_index": "statements",
"_type": "statement",
"_id": "37",
"_score": 12.162964,
"_source": {
"uid": 37,
"textversions": [
{
"content": "die Abiturzeugnisse über die vorhandenen Informatikkenntnisse sehr wenig aussagen, schließlich haben nur relativ wenige Schulen überhaupt Informatik als ernstzunehmendes Fach"
}
]
},
"highlight": {
"textversions.content": [
"die Abiturzeugnisse über die vorhandenen <em>Informatikkenntnisse</em> sehr wenig aussagen, schließlich",
" haben nur relativ wenige Schulen überhaupt <em>Informatik</em> als ernstzunehmendes Fach"
]
}
}
有人知道这种不当行为的解决方案吗?
感谢您的帮助。
我在文档中找到了答案:我必须添加 "number_of_fragments: 0",因此突出显示不会将我的文本分成片段和 returns 完整内容。
我使用 Elasticsearch 5.4 构建了自动完成搜索并突出显示了匹配项。
这是我的搜索查询:
GET statements/_search
{
"_source": ["uid","textversions.content"],
"highlight": {
"fields": {
"textversions.content": {}
}
},
"query": {
"match": {
"textversions.content": {
"query": "Informatik",
"fuzziness": "AUTO"
}
}
}
}
现在,大部分结果都正确突出显示了。这是一个例子:
{
"_index": "statements",
"_type": "statement",
"_id": "118",
"_score": 15.151196,
"_source": {
"uid": 118,
"textversions": [
{
"content": "die Nachfrage nach Informatikern auch groß ist"
}
]
},
"highlight": {
"textversions.content": [
"die Nachfrage nach <em>Informatikern</em> auch groß ist"
]
}
}
但我有一些结果,其中我的 textversions.content 不完全在突出显示的版本中:
{
"_index": "statements",
"_type": "statement",
"_id": "252",
"_score": 15.809544,
"_source": {
"uid": 252,
"textversions": [
{
"content": "es im Informatikstudium darum geht, sich mit Themen, die für einen Informatiker im späteren Leben absolut notwendig sind, auseinanderzusetzen und nicht mit anderen Fächern"
}
]
},
"highlight": {
"textversions.content": [
"es im <em>Informatikstudium</em> darum geht, sich mit Themen, die für einen <em>Informatiker</em> im späteren Leben"
]
}
}
or 被分成两个单独的句子:
{
"_index": "statements",
"_type": "statement",
"_id": "37",
"_score": 12.162964,
"_source": {
"uid": 37,
"textversions": [
{
"content": "die Abiturzeugnisse über die vorhandenen Informatikkenntnisse sehr wenig aussagen, schließlich haben nur relativ wenige Schulen überhaupt Informatik als ernstzunehmendes Fach"
}
]
},
"highlight": {
"textversions.content": [
"die Abiturzeugnisse über die vorhandenen <em>Informatikkenntnisse</em> sehr wenig aussagen, schließlich",
" haben nur relativ wenige Schulen überhaupt <em>Informatik</em> als ernstzunehmendes Fach"
]
}
}
有人知道这种不当行为的解决方案吗?
感谢您的帮助。
我在文档中找到了答案:我必须添加 "number_of_fragments: 0",因此突出显示不会将我的文本分成片段和 returns 完整内容。