Elasticsearch |Подсветка целочисленных полей при использовании подстановочного знака - PullRequest
0 голосов
/ 25 февраля 2019

Я проиндексировал документ, содержащий целые числа.

Отображение этих полей:

"INTEGER_FIELD": {
  "type": "integer",
  "fields": {
    "keyword": {
      "type": "keyword",
      "ignore_above": 256
    }
  }
}

Поисковый запрос:

{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "should": [
        {
          "query_string": {
            "query": "\"0\"",
            "fields": [
              "INTEGER_FIELD"
            ],
            "boost": "2000"
          }
        },
        {
          "query_string": {
            "query": "*0*",
            "analyzer": "whitespace",
            "fields": [
              "INTEGER_FIELD"
            ]
          }
        }
      ],
      "minimum_should_match": 1
    }
  },
  "highlight": {
    "type": "unified",
    "fields": {
      "INTEGER_FIELD": {}
    }
  }
}

Мои сомнения:

1. Когда используется вышеуказанный запрос, подсвечивается «INTEGER_FIELD», выбранный результат выделения:

  "highlight": {
    "INTEGER_FIELD": [
      "<em>0</em>"
    ]
  }

2. Когдаиспользуется только первая строка запроса, т. е.

{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "should": [
        {
          "query_string": {
            "query": "\"0\"",
            "fields": [
              "INTEGER_FIELD"
            ],
            "boost": "2000"
          }
        }
      ],
      "minimum_should_match": 1
    }
  },
  "highlight": {
    "type": "unified",
    "fields": {
      "INTEGER_FIELD": {}
    }
  }
}

Документ извлечен / извлечен, но выделение отсутствует.

3. Когда только вторая строка запросаиспользуется, т. е.

{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "should": [
        {
          "query_string": {
            "query": "*0*",
            "analyzer": "whitespace",
            "fields": [
              "INTEGER_FIELD"
            ]
          }
        }
      ],
      "minimum_should_match": 1
    }
  },
  "highlight": {
    "type": "unified",
    "fields": {
      "INTEGER_FIELD": {}
    }
  }
}

Документ не выбран и, следовательно, ничего не выделено

Я не понимаю, как здесь происходит выделение.Из того, что я понимаю, Elasticsearch обеспечивает подсветку только для текстовых полей.Почему поля Integer подсвечиваются и почему они подсвечиваются только при использовании подстановочного знака?Пожалуйста, дайте мне знать, если я что-то не так

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