2015-01-27 24 views
11

TL; DR: Nie rozumiem, jak działa podświetlanie, a dokładniej, jak fragment_size wpływa na podświetlanie.Ciekawe zachowanie fragment_size w podświetleniu elastycznego wyszukiwania


Na nowej instalacji ES (1.4.2), jestem Tworzenie indeksu z następującymi ustawieniami:

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

Potem ja wkładając następujący dokument:

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

Na koniec, pytam "couche-sirop" i podświetlam wynik, z różnymi wartościami 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 
      } 
     } 
    } 
} 

Niektóre wyniki:

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

z większą N wartości

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

Czy ktoś może wyjaśnić dlaczego:

  • Przy większych wartościach N spodziewamy się, że będą miały większy kontekst, ale czasami mamy mniej.
  • W zależności od wartości n, czasami mają jeden fragment, czasami dwie

ja też próbowałem postings i fast vector wyróżnienia z tymi samymi wynikami

dzięki!

+1

Kuszono, aby upvote tylko w oparciu o przykład: D – JBL

Odpowiedz