Управление размером окна в результатах подсветки - PullRequest
1 голос
/ 14 марта 2019

Я ищу способ извлечь результаты попадания span_near изasticsearch. В конечном счете, я хотел бы извлечь фразу вместе с парой токенов слева и справа от терминов span. Я узнал о маркерах и подумал, что это путь.

Скажите, что это мой запрос:

GET morf_texts/_search
{
  "query": {
    "span_near": {
      "clauses": [
        {
          "span_term": {
            "content": {
              "value": "estetyczny"
            }
          }
        },
        {
          "span_term": {
            "content": {
              "value": "zachowanie"
            }
          }
        }
      ],
      "slop": 3,
      "in_order": false
    }
  },
  "highlight": {"fields": {"content": {}}}
}

Результаты поиска перечислены так:

"hits": {
    "total": 1,
    "max_score": 1.672149,
    "hits": [
      {
        "_index": "morf_texts",
        "_type": "doc",
        "_id": "1",
        "_score": 1.672149,
        "_source": {
          "content": """
Piękno – pozytywna właściwość estetyczna bytu wynikająca z zachowania proporcji, harmonii barw, dźwięków, stosowności, umiaru i użyteczności, odbierana przez zmysły. Istnieje piękno idealne, duchowe, moralne, naturalne, cielesne, obiektywne i subiektywne. Pojęcie to jest silnie związane z teorią estetyki, prawdy i dobra.
W metafizyce, piękno jest jedną z transcendentalnych właściwości bytu, wyrażającą jego scalenie, przejrzystość, proporcję wewnętrzną tworzyw bytu oraz doskonałość.
Badaniami nad precyzowaniem terminu piękna zajmują się nie tylko filozofowie i artyści, lecz także teoretycy z dziedzin: historii i krytyki sztuki, antropologii, socjologii, psychologii, a także szkolnictwa.
"""
        },
        "highlight": {
          "content": [
            "Piękno – pozytywna właściwość <em>estetyczna</em> bytu wynikająca z <em>zachowania</em> proporcji, harmonii barw, dźwięków"
          ]
        }
      }
    ]

Это уже здорово, потому что я получаю три жетона слева от estetyczna и четыре справа от zachowania. Есть ли способ контролировать, сколько жетонов слева и справа он выделит?

1 Ответ

0 голосов
/ 19 марта 2019

Итак, после поиска решения в течение некоторого времени, я думаю, что нет никакого способа контролировать количество токенов влево или вправо.

Однако можно контролировать количество символов, которое содержит каждый извлеченный фрагмент.Если количество символов достаточно велико, то фрагмент, как мы надеемся, должен иметь достаточный контекст слева и справа, чтобы выполнить требование подсчета токенов.

Пример запроса с использованием параметра fragment_size будет выглядеть так:

GET morf_texts/_search
{
  "query": {
      ...
  },
  "highlight": {
    "fields": {
      "content": {
        "fragment_size": 200
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...