fragment_size 在 elasticsearch 突出显示中的奇怪行为
Curious behaviour of fragment_size in elasticsearch highlighting
TL;DR : 我不明白突出显示是如何工作的,更确切地说 fragment_size
如何影响突出显示。
在新的 ES 安装 (1.4.2) 上,我正在使用以下设置创建索引:
{
"mappings" : {
"test": {
"properties": {
"content" : {
"type" : "string",
"analyzer" : "french"
}
}
}
}
}
然后,我将插入以下文档:
{
"content": "Bon alors mettons que j'ouvre avec un sirop de huit. Si c'est vous qui avez siroté au tour d'avant, ça tourne dans votre sens. Soit vous laissez filer, vous dites file-sirop, soit vous vous sentez de relancer et vous annoncez un sirop de quatorze. Vous, comme on a commencé les annonces, vous avez pas le droit de laisser filer. Vous pouvez soit relancer un sirop de vingt-et-un, soit vous abandonnez le tour et vous dites couche-sirop. Ou sirop Jeannot, ça dépend des régions. Et après, soit on fait la partie soit je fais un contre-sirop, boum ! Et à partir de là, sirop de pomme sur vingt-et-un donc on fait la partie en quatre tours jusqu'à qu'il y en ait un qui sirote."
}
最后,我正在查询“couche-sirop”并突出显示具有不同 N 值的结果 (fragment_size
):
{
"query": {
"query_string": {
"query": "\"couche-sirop\"",
"fields": [
"content"
],
"default_operator": "and"
}
},
"highlight": {
"number_of_fragments": 5,
"type": "plain",
"fields": {
"content": {
"fragment_size": N
}
}
}
}
一些结果:
- N=15:
[' <em>couche</em>', '-<em>sirop</em>. Ou sirop']
- N=16:
[' et vous dites <em>couche</em>', '-<em>sirop</em>. Ou sirop']
- N=17:
[' <em>couche</em>-<em>sirop</em>']
- N=18:
[' et vous dites <em>couche</em>', '-<em>sirop</em>. Ou sirop']
- N=19:
[' et vous dites <em>couche</em>-<em>sirop</em>']
具有更大的 N 值
- N=70:
[' et vous dites <em>couche</em>-<em>sirop</em>. Ou sirop Jeannot, ça dépend des régions. Et après']
- N=71:
[' <em>couche</em>-<em>sirop</em>. Ou sirop Jeannot, ça dépend des régions. Et après']
- N=72:
[' un sirop de vingt-et-un, soit vous abandonnez le tour et vous dites <em>couche</em>', '-<em>sirop</em>. Ou sirop Jeannot, ça dépend des régions. Et après, soit on fait']
- N=73:
[' de vingt-et-un, soit vous abandonnez le tour et vous dites <em>couche</em>-<em>sirop</em>']
谁能解释一下原因:
- 随着 N 值的增加,我们期望有更多的上下文,但是
有时我们拥有的更少。
- 根据N的值,我们有时有一个碎片,有时有两个
我也尝试了 postings
和 fast vector
荧光笔,结果相同
谢谢!
我怀疑这是一个错误。我在 github 上开了一个问题:https://github.com/elasticsearch/elasticsearch/issues/9442
TL;DR : 我不明白突出显示是如何工作的,更确切地说 fragment_size
如何影响突出显示。
在新的 ES 安装 (1.4.2) 上,我正在使用以下设置创建索引:
{
"mappings" : {
"test": {
"properties": {
"content" : {
"type" : "string",
"analyzer" : "french"
}
}
}
}
}
然后,我将插入以下文档:
{
"content": "Bon alors mettons que j'ouvre avec un sirop de huit. Si c'est vous qui avez siroté au tour d'avant, ça tourne dans votre sens. Soit vous laissez filer, vous dites file-sirop, soit vous vous sentez de relancer et vous annoncez un sirop de quatorze. Vous, comme on a commencé les annonces, vous avez pas le droit de laisser filer. Vous pouvez soit relancer un sirop de vingt-et-un, soit vous abandonnez le tour et vous dites couche-sirop. Ou sirop Jeannot, ça dépend des régions. Et après, soit on fait la partie soit je fais un contre-sirop, boum ! Et à partir de là, sirop de pomme sur vingt-et-un donc on fait la partie en quatre tours jusqu'à qu'il y en ait un qui sirote."
}
最后,我正在查询“couche-sirop”并突出显示具有不同 N 值的结果 (fragment_size
):
{
"query": {
"query_string": {
"query": "\"couche-sirop\"",
"fields": [
"content"
],
"default_operator": "and"
}
},
"highlight": {
"number_of_fragments": 5,
"type": "plain",
"fields": {
"content": {
"fragment_size": N
}
}
}
}
一些结果:
- N=15:
[' <em>couche</em>', '-<em>sirop</em>. Ou sirop']
- N=16:
[' et vous dites <em>couche</em>', '-<em>sirop</em>. Ou sirop']
- N=17:
[' <em>couche</em>-<em>sirop</em>']
- N=18:
[' et vous dites <em>couche</em>', '-<em>sirop</em>. Ou sirop']
- N=19:
[' et vous dites <em>couche</em>-<em>sirop</em>']
具有更大的 N 值
- N=70:
[' et vous dites <em>couche</em>-<em>sirop</em>. Ou sirop Jeannot, ça dépend des régions. Et après']
- N=71:
[' <em>couche</em>-<em>sirop</em>. Ou sirop Jeannot, ça dépend des régions. Et après']
- N=72:
[' un sirop de vingt-et-un, soit vous abandonnez le tour et vous dites <em>couche</em>', '-<em>sirop</em>. Ou sirop Jeannot, ça dépend des régions. Et après, soit on fait']
- N=73:
[' de vingt-et-un, soit vous abandonnez le tour et vous dites <em>couche</em>-<em>sirop</em>']
谁能解释一下原因:
- 随着 N 值的增加,我们期望有更多的上下文,但是 有时我们拥有的更少。
- 根据N的值,我们有时有一个碎片,有时有两个
我也尝试了 postings
和 fast vector
荧光笔,结果相同
谢谢!
我怀疑这是一个错误。我在 github 上开了一个问题:https://github.com/elasticsearch/elasticsearch/issues/9442