Ungewöhnliches Verhalten von fragment_size bei der Hervorhebung von Elasticsearch

TL; DR: Ich verstehe nicht, wie das Hervorheben funktioniert und genauer, wiefragment_size beeinflusst die Hervorhebung.

Bei einer neuen ES-Installation (1.4.2) erstelle ich einen Index mit den folgenden Einstellungen:

{
    "mappings" : {
        "test": {
            "properties": {
                "content" : {
                    "type" : "string",
                    "analyzer" : "french"
                }
            }
        }
    }
}

Dann füge ich das folgende Dokument ein:

{
    "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."
}

Zum Schluss frage ich "couche-sirop" ab und hebe das Ergebnis mit verschiedenen Werten von N (@ hervofragment_size):

{
    "query": {
        "query_string": {
            "query": "\"couche-sirop\"",
            "fields": [
                "content"
            ],
            "default_operator": "and"
        }
    },
    "highlight": {
        "number_of_fragments": 5,
        "type": "plain",
        "fields": {
            "content": {
                "fragment_size": N
            }
        }
    }
}

Einige Ergebnisse:

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>']

Mit größeren N-Werten

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>']

Kann jemand erklären, warum:

Mit größeren Werten von N erwarten wir mehr Kontext, aber manchmal haben wir weniger.Je nach dem Wert von N haben wir manchmal ein Fragment, manchmal zwei

Ich habe auch versucht, diepostings und diefast vector Textmarker mit den gleichen Ergebnissen

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage