W elastycznej analizie, czy istnieje sposób na skonfigurowanie analizatora, który tworzy luki w pozycjach między tokenami, gdy napotykane są znaki podziałowe lub znaki interpunkcyjne?Podziały linii lub znaki interpunkcyjne jako luki w pozycjach w elasticssearch
Powiedzmy indeks I obiekt z następującym bezsensownym ciągiem (z linii przerwy) jako jeden ze swoich dziedzin:
The quick brown fox runs after the rabbit.
Then comes the jumpy frog.
Standardowy analizator przyniesie następujące znaki z odpowiednich pozycjach:
0 the
1 quick
2 brown
3 fox
4 runs
5 after
6 the
7 rabbit
8 then
9 comes
10 the
11 jumpy
12 frog
Oznacza to, że zapytanie match_phrase
z the rabbit then comes
dopasuje ten dokument jako trafienie. Czy istnieje sposób wprowadzenia luki w pozycji między rabbit
i then
, aby nie pasowała, chyba że wprowadzono slop
?
Oczywiście, rozwiązaniem może być przekształcenie pojedynczego ciągu znaków w tablicę (jedna linia na wpis) i użycie position_offset_gap
w mapowaniu w terenie, ale wolałbym raczej zachować pojedynczy ciąg z liniami (i ostateczne rozwiązanie wymagałoby większe luki w pozycjach dla znaków nowej linii niż, powiedzmy, dla znaków interpunkcyjnych).