Отсутствие бликов от вложенного внутреннего попадания, когда термин содержит скобки - PullRequest
0 голосов
/ 18 октября 2018

У меня есть документ с вложенным полем, и у меня возникли некоторые проблемы с получением выделения для работы.Почему я не получаю подсветку, когда мой запрос термина содержит заостренные скобки (<>)?

У нас есть два поля во вложенном отображении, содержащем похожие данные:

"value": {
  "type": "keyword",
  "normalizer": "lowercase"
},
"valueWithQualifier": {
  "type": "keyword",
  "normalizer": "lowercase"
}

Нормализатор lowercaseиспользует фильтры ["asciifolding", "lowercase"]

value обычно представляет собой буквенно-цифровую строку, но valueWithQualifier принимает форму value<qualifier>.Когда я выполняю запрос термина в поле value, он обычно возвращает выделенную информацию.Когда я выполняю запрос термина в поле valueWithQualifier, я никогда не получаю информацию о выделении.

{
  "query": {
    "nested": {
      "path": "assoc",
      "query": {
        "term": {
          "assoc.value": "123abc"
        }
      },
      "inner_hits": {
        "highlight": {
          "fields": {
            "assoc.value*": {}
          }
        }
      }
    }
  }
}

Возвращает внутреннее попадание с выделением:

"highlight": {
  "assoc.value": [
    "<em>123abc</em>"
  ]
}

Однако этот запросвозвращает inner_hit, но без выделения:

{
  "query": {
    "nested": {
      "path": "assoc",
      "query": {
        "term": {
          "assoc.valueWithQualifier": "123abc<qual>"
        }
      },
      "inner_hits": {
        "highlight": {
          "fields": {
            "assoc.value*": {}
          }
        }
      }
    }
  }
}

Однако это возвращает выделение (но я бы предпочел использовать термин запрос из-за эффективности):

{
  "query": {
    "nested": {
      "path": "assoc",
      "query": {
        "prefix": {
          "assoc.valueWithQualifier": "123abc"
        }
      },
      "inner_hits": {
        "highlight": {
          "fields": {
            "assoc.value*": {}
          }
        }
      }
    }
  }
}

"highlight": {
  "assoc.valueWithQualifier": [
    "<em>123abc<qual></em>"
  ]
}

И перед кем-тоспрашивает, я попытался добавить "encoder": "html" к выделению.

1 Ответ

0 голосов
/ 27 октября 2018

Оказывается, это ошибка, исправленная в ES 6.2 (https://github.com/elastic/elasticsearch/pull/27604).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...